Statistics
| Branch: | Tag: | Revision:

root / src / gr / ebs / gss / client / TopPanel.java @ fc0fa492

History | View | Annotate | Download (6.4 kB)

1 023f6f1e Panagiotis Astithas
/*
2 023f6f1e Panagiotis Astithas
 * Copyright 2007, 2008, 2009 Electronic Business Systems Ltd.
3 023f6f1e Panagiotis Astithas
 *
4 023f6f1e Panagiotis Astithas
 * This file is part of GSS.
5 023f6f1e Panagiotis Astithas
 *
6 023f6f1e Panagiotis Astithas
 * GSS is free software: you can redistribute it and/or modify
7 023f6f1e Panagiotis Astithas
 * it under the terms of the GNU General Public License as published by
8 023f6f1e Panagiotis Astithas
 * the Free Software Foundation, either version 3 of the License, or
9 023f6f1e Panagiotis Astithas
 * (at your option) any later version.
10 023f6f1e Panagiotis Astithas
 *
11 023f6f1e Panagiotis Astithas
 * GSS is distributed in the hope that it will be useful,
12 023f6f1e Panagiotis Astithas
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 023f6f1e Panagiotis Astithas
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14 023f6f1e Panagiotis Astithas
 * GNU General Public License for more details.
15 023f6f1e Panagiotis Astithas
 *
16 023f6f1e Panagiotis Astithas
 * You should have received a copy of the GNU General Public License
17 023f6f1e Panagiotis Astithas
 * along with GSS.  If not, see <http://www.gnu.org/licenses/>.
18 023f6f1e Panagiotis Astithas
 */
19 023f6f1e Panagiotis Astithas
package gr.ebs.gss.client;
20 023f6f1e Panagiotis Astithas
21 023f6f1e Panagiotis Astithas
import com.google.gwt.core.client.GWT;
22 023f6f1e Panagiotis Astithas
import com.google.gwt.resources.client.ClientBundle;
23 023f6f1e Panagiotis Astithas
import com.google.gwt.resources.client.ImageResource;
24 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.Command;
25 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.AbstractImagePrototype;
26 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.Composite;
27 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.HTML;
28 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.HasHorizontalAlignment;
29 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.HasVerticalAlignment;
30 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.HorizontalPanel;
31 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.MenuBar;
32 023f6f1e Panagiotis Astithas
import com.google.gwt.user.client.ui.MenuItem;
33 023f6f1e Panagiotis Astithas
34 023f6f1e Panagiotis Astithas
/**
35 023f6f1e Panagiotis Astithas
 * The top panel, which contains the menu bar icons and the user name.
36 023f6f1e Panagiotis Astithas
 */
37 023f6f1e Panagiotis Astithas
public class TopPanel extends Composite {
38 023f6f1e Panagiotis Astithas
39 023f6f1e Panagiotis Astithas
        /**
40 023f6f1e Panagiotis Astithas
         * A constant that denotes the completion of an IncrementalCommand.
41 023f6f1e Panagiotis Astithas
         */
42 023f6f1e Panagiotis Astithas
        public static final boolean DONE = false;
43 023f6f1e Panagiotis Astithas
44 023f6f1e Panagiotis Astithas
        /**
45 023f6f1e Panagiotis Astithas
         * An image bundle for this widgets images.
46 023f6f1e Panagiotis Astithas
         */
47 023f6f1e Panagiotis Astithas
        public interface Images extends ClientBundle, FileMenu.Images, EditMenu.Images,
48 023f6f1e Panagiotis Astithas
                        SettingsMenu.Images, GroupMenu.Images, FilePropertiesDialog.Images,
49 023f6f1e Panagiotis Astithas
                        HelpMenu.Images, LoadingIndicator.Images {
50 023f6f1e Panagiotis Astithas
51 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/exit.png")
52 023f6f1e Panagiotis Astithas
                ImageResource exit();
53 023f6f1e Panagiotis Astithas
54 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/folder_blue.png")
55 023f6f1e Panagiotis Astithas
                ImageResource folder();
56 023f6f1e Panagiotis Astithas
57 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/edit.png")
58 023f6f1e Panagiotis Astithas
                ImageResource edit();
59 023f6f1e Panagiotis Astithas
60 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/edit_group.png")
61 023f6f1e Panagiotis Astithas
                ImageResource group();
62 023f6f1e Panagiotis Astithas
63 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/configure.png")
64 023f6f1e Panagiotis Astithas
                ImageResource configure();
65 023f6f1e Panagiotis Astithas
66 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/help.png")
67 023f6f1e Panagiotis Astithas
                ImageResource help();
68 023f6f1e Panagiotis Astithas
69 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/pithos-logo.png")
70 023f6f1e Panagiotis Astithas
                ImageResource gssLogo();
71 023f6f1e Panagiotis Astithas
72 023f6f1e Panagiotis Astithas
                @Source("gr/ebs/gss/resources/grnet-logo.png")
73 023f6f1e Panagiotis Astithas
                ImageResource grnetLogo();
74 023f6f1e Panagiotis Astithas
        }
75 023f6f1e Panagiotis Astithas
76 023f6f1e Panagiotis Astithas
        /**
77 023f6f1e Panagiotis Astithas
         * The menu bar widget.
78 023f6f1e Panagiotis Astithas
         */
79 023f6f1e Panagiotis Astithas
        private MenuBar menu;
80 023f6f1e Panagiotis Astithas
81 023f6f1e Panagiotis Astithas
        /**
82 023f6f1e Panagiotis Astithas
         * The file menu widget.
83 023f6f1e Panagiotis Astithas
         */
84 023f6f1e Panagiotis Astithas
        private FileMenu fileMenu;
85 023f6f1e Panagiotis Astithas
86 023f6f1e Panagiotis Astithas
        /**
87 023f6f1e Panagiotis Astithas
         * The edit menu widget.
88 023f6f1e Panagiotis Astithas
         */
89 023f6f1e Panagiotis Astithas
        private EditMenu editMenu;
90 023f6f1e Panagiotis Astithas
91 023f6f1e Panagiotis Astithas
        /**
92 023f6f1e Panagiotis Astithas
         * The group menu widget.
93 023f6f1e Panagiotis Astithas
         */
94 023f6f1e Panagiotis Astithas
        private GroupMenu groupMenu;
95 023f6f1e Panagiotis Astithas
96 023f6f1e Panagiotis Astithas
        /**
97 023f6f1e Panagiotis Astithas
         * The settings menu widget.
98 023f6f1e Panagiotis Astithas
         */
99 023f6f1e Panagiotis Astithas
        private SettingsMenu settingsMenu;
100 023f6f1e Panagiotis Astithas
101 023f6f1e Panagiotis Astithas
        /**
102 023f6f1e Panagiotis Astithas
         * The help menu widget.
103 023f6f1e Panagiotis Astithas
         */
104 023f6f1e Panagiotis Astithas
        private HelpMenu helpMenu;
105 023f6f1e Panagiotis Astithas
106 023f6f1e Panagiotis Astithas
        /**
107 023f6f1e Panagiotis Astithas
         * A widget that displays a message indicating that communication with the
108 023f6f1e Panagiotis Astithas
         * server is underway.
109 023f6f1e Panagiotis Astithas
         */
110 023f6f1e Panagiotis Astithas
        private LoadingIndicator loading;
111 023f6f1e Panagiotis Astithas
112 023f6f1e Panagiotis Astithas
        /**
113 023f6f1e Panagiotis Astithas
         * The constructor for the top panel.
114 023f6f1e Panagiotis Astithas
         *
115 023f6f1e Panagiotis Astithas
         * @param images the supplied images
116 023f6f1e Panagiotis Astithas
         */
117 023f6f1e Panagiotis Astithas
        public TopPanel(Images images) {
118 023f6f1e Panagiotis Astithas
                fileMenu = new FileMenu(images);
119 023f6f1e Panagiotis Astithas
                editMenu = new EditMenu(images);
120 023f6f1e Panagiotis Astithas
                groupMenu = new GroupMenu(images);
121 023f6f1e Panagiotis Astithas
                settingsMenu = new SettingsMenu(images);
122 023f6f1e Panagiotis Astithas
                helpMenu = new HelpMenu(images);
123 023f6f1e Panagiotis Astithas
                loading = new LoadingIndicator(images);
124 023f6f1e Panagiotis Astithas
                HorizontalPanel outer = new HorizontalPanel();
125 023f6f1e Panagiotis Astithas
126 023f6f1e Panagiotis Astithas
                outer.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
127 023f6f1e Panagiotis Astithas
128 023f6f1e Panagiotis Astithas
                menu = new MenuBar();
129 023f6f1e Panagiotis Astithas
                menu.setWidth("100%");
130 023f6f1e Panagiotis Astithas
                menu.setAutoOpen(false);
131 023f6f1e Panagiotis Astithas
                menu.setAnimationEnabled(true);
132 023f6f1e Panagiotis Astithas
                menu.setStyleName("toolbarmenu");
133 023f6f1e Panagiotis Astithas
134 023f6f1e Panagiotis Astithas
                Command quitCommand = new Command(){
135 023f6f1e Panagiotis Astithas
                        @Override
136 023f6f1e Panagiotis Astithas
                        public void execute() {
137 023f6f1e Panagiotis Astithas
                                QuitDialog dlg = new QuitDialog();
138 023f6f1e Panagiotis Astithas
                                dlg.center();
139 023f6f1e Panagiotis Astithas
                        }
140 023f6f1e Panagiotis Astithas
                };
141 023f6f1e Panagiotis Astithas
                MenuItem quitItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
142 023f6f1e Panagiotis Astithas
                                        AbstractImagePrototype.create(images.exit()).getHTML() + "</td><td>Quit</td></tr></table>", true, quitCommand);
143 023f6f1e Panagiotis Astithas
                MenuItem fileItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
144 023f6f1e Panagiotis Astithas
                                        AbstractImagePrototype.create(images.folder()).getHTML() + "</td><td>File</td></tr></table>", true, new MenuBar(true)){
145 023f6f1e Panagiotis Astithas
                        @Override
146 023f6f1e Panagiotis Astithas
                        public MenuBar getSubMenu() {
147 023f6f1e Panagiotis Astithas
                                return fileMenu.createMenu();
148 023f6f1e Panagiotis Astithas
                        }
149 023f6f1e Panagiotis Astithas
                };
150 023f6f1e Panagiotis Astithas
                MenuItem editItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
151 023f6f1e Panagiotis Astithas
                                        AbstractImagePrototype.create(images.edit()).getHTML() + "</td><td>Edit</td></tr></table>", true, new MenuBar(true)){
152 023f6f1e Panagiotis Astithas
                        @Override
153 023f6f1e Panagiotis Astithas
                        public MenuBar getSubMenu() {
154 023f6f1e Panagiotis Astithas
                                return editMenu.createMenu();
155 023f6f1e Panagiotis Astithas
                        }
156 023f6f1e Panagiotis Astithas
                };
157 023f6f1e Panagiotis Astithas
                MenuItem groupItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
158 023f6f1e Panagiotis Astithas
                                        AbstractImagePrototype.create(images.group()).getHTML() + "</td><td>Group</td></tr></table>", true,
159 023f6f1e Panagiotis Astithas
                                        groupMenu.getContextMenu());
160 023f6f1e Panagiotis Astithas
                MenuItem configureItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
161 023f6f1e Panagiotis Astithas
                                        AbstractImagePrototype.create(images.configure()).getHTML() + "</td><td>Settings</td></tr></table>",
162 023f6f1e Panagiotis Astithas
                                        true,settingsMenu.getContextMenu());
163 023f6f1e Panagiotis Astithas
                MenuItem helpItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
164 023f6f1e Panagiotis Astithas
                                        AbstractImagePrototype.create(images.help()).getHTML() + "</td><td>Help</td></tr></table>", true, new MenuBar(true)){
165 023f6f1e Panagiotis Astithas
                        @Override
166 023f6f1e Panagiotis Astithas
                        public MenuBar getSubMenu() {
167 023f6f1e Panagiotis Astithas
                                return helpMenu.createMenu();
168 023f6f1e Panagiotis Astithas
                        }
169 023f6f1e Panagiotis Astithas
                };
170 023f6f1e Panagiotis Astithas
                menu.addItem(quitItem);
171 023f6f1e Panagiotis Astithas
                menu.addItem(fileItem);
172 023f6f1e Panagiotis Astithas
                menu.addItem(editItem);
173 023f6f1e Panagiotis Astithas
                menu.addItem(groupItem);
174 023f6f1e Panagiotis Astithas
                menu.addItem(configureItem);
175 023f6f1e Panagiotis Astithas
                menu.addItem(helpItem);
176 023f6f1e Panagiotis Astithas
177 023f6f1e Panagiotis Astithas
                outer.setSpacing(2);
178 023f6f1e Panagiotis Astithas
                outer.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
179 023f6f1e Panagiotis Astithas
                outer.setCellVerticalAlignment(menu, HasVerticalAlignment.ALIGN_MIDDLE);
180 023f6f1e Panagiotis Astithas
                outer.add(menu);
181 023f6f1e Panagiotis Astithas
                outer.setStyleName("toolbar");
182 023f6f1e Panagiotis Astithas
183 023f6f1e Panagiotis Astithas
                outer.add(loading);
184 023f6f1e Panagiotis Astithas
185 023f6f1e Panagiotis Astithas
                Configuration conf = (Configuration) GWT.create(Configuration.class);
186 023f6f1e Panagiotis Astithas
                HTML logos = new HTML("<table><tr><td><a href='" + conf.serviceHome() +
187 023f6f1e Panagiotis Astithas
                                        "' target='gss'>" +        AbstractImagePrototype.create(images.gssLogo()).getHTML() +
188 023f6f1e Panagiotis Astithas
                                        "</a><a href='http://www.grnet.gr/' " +        "target='grnet'>" +
189 023f6f1e Panagiotis Astithas
                                        AbstractImagePrototype.create(images.grnetLogo()).getHTML()+"</a></td></tr></table>");
190 023f6f1e Panagiotis Astithas
                outer.add(logos);
191 023f6f1e Panagiotis Astithas
192 023f6f1e Panagiotis Astithas
                outer.setCellHorizontalAlignment(logos, HasHorizontalAlignment.ALIGN_RIGHT);
193 023f6f1e Panagiotis Astithas
194 023f6f1e Panagiotis Astithas
                initWidget(outer);
195 023f6f1e Panagiotis Astithas
        }
196 023f6f1e Panagiotis Astithas
197 023f6f1e Panagiotis Astithas
198 023f6f1e Panagiotis Astithas
        /**
199 023f6f1e Panagiotis Astithas
         * Retrieve the loading.
200 023f6f1e Panagiotis Astithas
         *
201 023f6f1e Panagiotis Astithas
         * @return the loading
202 023f6f1e Panagiotis Astithas
         */
203 023f6f1e Panagiotis Astithas
        public LoadingIndicator getLoading() {
204 023f6f1e Panagiotis Astithas
                return loading;
205 023f6f1e Panagiotis Astithas
        }
206 023f6f1e Panagiotis Astithas
207 023f6f1e Panagiotis Astithas
        /**
208 023f6f1e Panagiotis Astithas
         * Retrieve the fileMenu.
209 023f6f1e Panagiotis Astithas
         *
210 023f6f1e Panagiotis Astithas
         * @return the fileMenu
211 023f6f1e Panagiotis Astithas
         */
212 023f6f1e Panagiotis Astithas
        FileMenu getFileMenu() {
213 023f6f1e Panagiotis Astithas
                return fileMenu;
214 023f6f1e Panagiotis Astithas
        }
215 023f6f1e Panagiotis Astithas
216 023f6f1e Panagiotis Astithas
        /**
217 023f6f1e Panagiotis Astithas
         * Retrieve the editMenu.
218 023f6f1e Panagiotis Astithas
         *
219 023f6f1e Panagiotis Astithas
         * @return the editMenu
220 023f6f1e Panagiotis Astithas
         */
221 023f6f1e Panagiotis Astithas
        EditMenu getEditMenu() {
222 023f6f1e Panagiotis Astithas
                return editMenu;
223 023f6f1e Panagiotis Astithas
        }
224 023f6f1e Panagiotis Astithas
}