/** * */ package org.gcube.portlets.user.dataminermanager.client; import org.gcube.portlets.user.dataminermanager.client.DataMinerManager.MenuItem; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Image; /** * * @author Giancarlo Panichi email: g.panichi@isti.cnr.it * */ public abstract class Header extends HorizontalPanel { public abstract void select(MenuItem menuItem); private Image menuGoBack, menuExperiment, menuDataSpace, menuComputations; private MenuItem currentSelection = null; /** * */ public Header() { super(); // this.setStyleAttribute("background-color", "#FFFFFF"); Image logo = new Image(DataMinerManager.resources.logoLittle()); logo.setAltText("Data Miner Manager"); logo.setTitle("Data Miner Manager"); logo.addStyleName("menuImgLogo"); menuGoBack = new Image(DataMinerManager.resources.goBack()); menuGoBack.addStyleName("menuItemImage"); menuGoBack.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (setMenuSelected(null)) select(null); } }); menuDataSpace = new Image( DataMinerManager.resources.menuItemInputspace()); menuDataSpace.addStyleName("menuItemImage"); menuDataSpace.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (setMenuSelected(MenuItem.DATA_SPACE)) select(MenuItem.DATA_SPACE); } }); menuExperiment = new Image( DataMinerManager.resources.menuItemExperiment()); menuExperiment.addStyleName("menuItemImage"); menuExperiment.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (setMenuSelected(MenuItem.EXPERIMENT)) select(MenuItem.EXPERIMENT); } }); menuComputations = new Image( DataMinerManager.resources.menuItemComputations()); menuComputations.addStyleName("menuItemImage"); menuComputations.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { if (setMenuSelected(MenuItem.COMPUTATIONS)) select(MenuItem.COMPUTATIONS); } }); add(logo); add(menuGoBack); add(menuDataSpace); add(menuExperiment); add(menuComputations); this.setCellWidth(logo, "100px"); this.setCellWidth(menuGoBack, "100px"); this.setCellWidth(menuDataSpace, "80px"); this.setCellWidth(menuExperiment, "80px"); // this.setCellWidth(menuComputations, "80px"); menuGoBack.setVisible(false); menuDataSpace.setVisible(false); menuExperiment.setVisible(false); menuComputations.setVisible(false); } /** * @param inputSpace */ public boolean setMenuSelected(MenuItem menuItem) { // return true if the menu was changed if (menuItem == currentSelection) return false; // nothing to change if (menuItem == null) { menuGoBack.setVisible(false); menuDataSpace.setVisible(false); menuExperiment.setVisible(false); menuComputations.setVisible(false); if (currentSelection == MenuItem.EXPERIMENT) menuExperiment.removeStyleName("menuItemImage-selected"); else if (currentSelection == MenuItem.DATA_SPACE) menuDataSpace.removeStyleName("menuItemImage-selected"); else if (currentSelection == MenuItem.COMPUTATIONS) menuComputations.removeStyleName("menuItemImage-selected"); } else { if (currentSelection == null) { menuGoBack.setVisible(true); menuDataSpace.setVisible(true); menuExperiment.setVisible(true); menuComputations.setVisible(true); } if (currentSelection == MenuItem.EXPERIMENT) menuExperiment.removeStyleName("menuItemImage-selected"); else if (currentSelection == MenuItem.DATA_SPACE) menuDataSpace.removeStyleName("menuItemImage-selected"); else if (currentSelection == MenuItem.COMPUTATIONS) menuComputations.removeStyleName("menuItemImage-selected"); /* * Image imgNew=menuExperiment; */ /* * Image imgNew = (menuItem == MenuItem.DATA_SPACE ? menuDataSpace : * menuExperiment); */ Image imgNew = (menuItem == MenuItem.DATA_SPACE ? menuDataSpace : (menuItem == MenuItem.EXPERIMENT ? menuExperiment : menuComputations)); imgNew.addStyleName("menuItemImage-selected"); } currentSelection = menuItem; return true; } }