2 * Copyright 2007, 2008, 2009 Electronic Business Systems Ltd.
\r
4 * This file is part of GSS.
\r
6 * GSS is free software: you can redistribute it and/or modify
\r
7 * it under the terms of the GNU General Public License as published by
\r
8 * the Free Software Foundation, either version 3 of the License, or
\r
9 * (at your option) any later version.
\r
11 * GSS is distributed in the hope that it will be useful,
\r
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
14 * GNU General Public License for more details.
\r
16 * You should have received a copy of the GNU General Public License
\r
17 * along with GSS. If not, see <http://www.gnu.org/licenses/>.
\r
19 package gr.ebs.gss.client;
\r
21 import com.google.gwt.core.client.GWT;
\r
22 import com.google.gwt.user.client.Command;
\r
23 import com.google.gwt.user.client.ui.AbstractImagePrototype;
\r
24 import com.google.gwt.user.client.ui.Composite;
\r
25 import com.google.gwt.user.client.ui.HTML;
\r
26 import com.google.gwt.user.client.ui.HasHorizontalAlignment;
\r
27 import com.google.gwt.user.client.ui.HasVerticalAlignment;
\r
28 import com.google.gwt.user.client.ui.HorizontalPanel;
\r
29 import com.google.gwt.user.client.ui.ImageBundle;
\r
30 import com.google.gwt.user.client.ui.MenuBar;
\r
31 import com.google.gwt.user.client.ui.MenuItem;
\r
34 * The top panel, which contains the menu bar icons and the user name.
\r
36 public class TopPanel extends Composite {
\r
39 * A constant that denotes the completion of an IncrementalCommand.
\r
41 public static final boolean DONE = false;
\r
44 * An image bundle for this widgets images.
\r
46 public interface Images extends ImageBundle, FileMenu.Images, EditMenu.Images,
\r
47 SettingsMenu.Images, GroupMenu.Images, FilePropertiesDialog.Images,
\r
50 @Resource("gr/ebs/gss/resources/exit.png")
\r
51 AbstractImagePrototype exit();
\r
53 @Resource("gr/ebs/gss/resources/folder_blue.png")
\r
54 AbstractImagePrototype folder();
\r
56 @Resource("gr/ebs/gss/resources/edit.png")
\r
57 AbstractImagePrototype edit();
\r
59 @Resource("gr/ebs/gss/resources/edit_group.png")
\r
60 AbstractImagePrototype group();
\r
62 @Resource("gr/ebs/gss/resources/configure.png")
\r
63 AbstractImagePrototype configure();
\r
65 @Resource("gr/ebs/gss/resources/help.png")
\r
66 AbstractImagePrototype help();
\r
68 @Resource("gr/ebs/gss/resources/pithos-logo.png")
\r
69 AbstractImagePrototype gssLogo();
\r
71 @Resource("gr/ebs/gss/resources/grnet-logo.png")
\r
72 AbstractImagePrototype grnetLogo();
\r
76 * The menu bar widget.
\r
78 private MenuBar menu;
\r
81 * The file menu widget.
\r
83 private FileMenu fileMenu;
\r
86 * The edit menu widget.
\r
88 private EditMenu editMenu;
\r
91 * The group menu widget.
\r
93 private GroupMenu groupMenu;
\r
96 * The settings menu widget.
\r
98 private SettingsMenu settingsMenu;
\r
101 * The help menu widget.
\r
103 private HelpMenu helpMenu;
\r
106 * The constructor for the top panel.
\r
108 * @param images the supplied images
\r
110 public TopPanel(Images images) {
\r
111 fileMenu = new FileMenu(images);
\r
112 editMenu = new EditMenu(images);
\r
113 groupMenu = new GroupMenu(images);
\r
114 settingsMenu = new SettingsMenu(images);
\r
115 helpMenu = new HelpMenu(images);
\r
116 HorizontalPanel outer = new HorizontalPanel();
\r
118 outer.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
\r
120 menu = new MenuBar();
\r
121 menu.setWidth("100%");
\r
122 menu.setAutoOpen(false);
\r
123 menu.setAnimationEnabled(true);
\r
124 menu.setStyleName("toolbarmenu");
\r
126 Command quitCommand = new Command(){
\r
127 public void execute() {
\r
128 QuitDialog dlg = new QuitDialog();
\r
132 MenuItem quitItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
\r
133 images.exit().getHTML() + "</td><td>Quit</td></tr></table>", true, quitCommand);
\r
134 MenuItem fileItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
\r
135 images.folder().getHTML() + "</td><td>File</td></tr></table>", true, new MenuBar(true)){
\r
137 public MenuBar getSubMenu() {
\r
138 return fileMenu.createMenu();
\r
141 MenuItem editItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
\r
142 images.edit().getHTML() + "</td><td>Edit</td></tr></table>", true, new MenuBar(true)){
\r
144 public MenuBar getSubMenu() {
\r
145 return editMenu.createMenu();
\r
148 MenuItem groupItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
\r
149 images.group().getHTML() + "</td><td>Group</td></tr></table>", true,
\r
150 groupMenu.getContextMenu());
\r
151 MenuItem configureItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
\r
152 images.configure().getHTML() + "</td><td>Settings</td></tr></table>",
\r
153 true,settingsMenu.getContextMenu());
\r
154 MenuItem helpItem = new MenuItem("<table style='font-size: 100%'><tr><td>" +
\r
155 images.help().getHTML() + "</td><td>Help</td></tr></table>", true, new MenuBar(true)){
\r
157 public MenuBar getSubMenu() {
\r
158 return helpMenu.createMenu();
\r
161 menu.addItem(quitItem);
\r
162 menu.addItem(fileItem);
\r
163 menu.addItem(editItem);
\r
164 menu.addItem(groupItem);
\r
165 menu.addItem(configureItem);
\r
166 menu.addItem(helpItem);
\r
168 outer.setSpacing(2);
\r
169 outer.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
\r
170 outer.setCellVerticalAlignment(menu, HasVerticalAlignment.ALIGN_MIDDLE);
\r
172 outer.setStyleName("toolbar");
\r
174 Configuration conf = (Configuration) GWT.create(Configuration.class);
\r
175 HTML logos = new HTML("<table><tr><td><a href='" + conf.serviceHome() +
\r
176 "' target='gss'>" + images.gssLogo().getHTML() +
\r
177 "</a><a href='http://www.grnet.gr/' " + "target='grnet'>" +
\r
178 images.grnetLogo().getHTML()+"</a></td></tr></table>");
\r
181 outer.setCellHorizontalAlignment(logos, HasHorizontalAlignment.ALIGN_RIGHT);
\r
187 * Retrieve the fileMenu.
\r
189 * @return the fileMenu
\r
191 FileMenu getFileMenu() {
\r
196 * Retrieve the editMenu.
\r
198 * @return the editMenu
\r
200 EditMenu getEditMenu() {
\r