private void updateConnectToDropDownButton( boolean isEmulatorRunning, boolean isCompanionRunning, boolean isUsbRunning) { if (!isEmulatorRunning && !isCompanionRunning && !isUsbRunning) { connectDropDown.setItemEnabled(MESSAGES.wirelessButton(), true); connectDropDown.setItemEnabled(MESSAGES.emulatorButton(), true); connectDropDown.setItemEnabled(MESSAGES.usbButton(), true); } else { connectDropDown.setItemEnabled(MESSAGES.wirelessButton(), false); connectDropDown.setItemEnabled(MESSAGES.emulatorButton(), false); connectDropDown.setItemEnabled(MESSAGES.usbButton(), false); } }
/** * Enables and/or disables buttons based on how many projects exist (in the case of "Download All * Projects") or are selected (in the case of "Delete" and "Download Source"). */ public void updateFileMenuButtons(int view) { if (view == 0) { // We are in the Projects view fileDropDown.setItemEnabled( MESSAGES.deleteMenuItemButton(), Ode.getInstance().getProjectManager().getProjects() == null); fileDropDown.setItemEnabled( MESSAGES.exportAllProjectsButton(), Ode.getInstance().getProjectManager().getProjects().size() > 0); fileDropDown.setItemEnabled(MESSAGES.exportProjectButton(), false); fileDropDown.setItemEnabled(MESSAGES.saveMenuItem(), false); fileDropDown.setItemEnabled(MESSAGES.saveAsMenuItem(), false); fileDropDown.setItemEnabled(MESSAGES.checkpointButton(), false); buildDropDown.setItemEnabled(MESSAGES.showBarcodeButton(), false); buildDropDown.setItemEnabled(MESSAGES.downloadToComputerButton(), false); } else { // We have to be in the Designer/Blocks view fileDropDown.setItemEnabled(MESSAGES.deleteMenuItemButton(), false); fileDropDown.setItemEnabled(MESSAGES.exportAllProjectsButton(), false); fileDropDown.setItemEnabled(MESSAGES.exportProjectButton(), false); fileDropDown.setItemEnabled(MESSAGES.saveMenuItem(), true); fileDropDown.setItemEnabled(MESSAGES.saveAsMenuItem(), true); fileDropDown.setItemEnabled(MESSAGES.checkpointButton(), true); buildDropDown.setItemEnabled(MESSAGES.showBarcodeButton(), true); buildDropDown.setItemEnabled(MESSAGES.downloadToComputerButton(), true); } updateKeystoreFileMenuButtons(); }
public TopToolbar() { /* * Layout is as follows: * +-------------------------------------------------+ * | Project ▾ | Connect ▾ | Build ▾| Help ▾| Admin ▾ | * +-------------------------------------------------+ */ HorizontalPanel toolbar = new HorizontalPanel(); toolbar.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE); List<DropDownItem> fileItems = Lists.newArrayList(); List<DropDownItem> connectItems = Lists.newArrayList(); List<DropDownItem> buildItems = Lists.newArrayList(); List<DropDownItem> helpItems = Lists.newArrayList(); // File -> {New Project; Save; Save As; Checkpoint; |; Delete this Project; My Projects;} fileItems.add( new DropDownItem( WIDGET_NAME_MY_PROJECTS, MESSAGES.tabNameProjects(), new SwitchToProjectAction())); fileItems.add(null); fileItems.add(new DropDownItem(WIDGET_NAME_NEW, MESSAGES.newMenuItemButton(), new NewAction())); fileItems.add( new DropDownItem( WIDGET_NAME_IMPORTPROJECT, MESSAGES.importProjectButton(), new ImportProjectAction())); fileItems.add( new DropDownItem( WIDGET_NAME_IMPORTTEMPLATE, MESSAGES.importTemplateButton(), new ImportTemplateAction())); fileItems.add( new DropDownItem(WIDGET_NAME_DELETE, MESSAGES.deleteMenuItemButton(), new DeleteAction())); fileItems.add(null); fileItems.add(new DropDownItem(WIDGET_NAME_SAVE, MESSAGES.saveMenuItem(), new SaveAction())); fileItems.add( new DropDownItem(WIDGET_NAME_SAVE_AS, MESSAGES.saveAsMenuItem(), new SaveAsAction())); fileItems.add( new DropDownItem( WIDGET_NAME_CHECKPOINT, MESSAGES.checkpointButton(), new CheckpointAction())); fileItems.add(null); fileItems.add( new DropDownItem( WIDGET_NAME_EXPORTPROJECT, MESSAGES.exportProjectButton(), new ExportProjectAction())); fileItems.add( new DropDownItem( WIDGET_NAME_EXPORTALLPROJECTS, MESSAGES.exportAllProjectsButton(), new ExportAllProjectsAction())); fileItems.add(null); fileItems.add( new DropDownItem( WIDGET_NAME_UPLOAD_KEYSTORE, MESSAGES.uploadKeystoreButton(), new UploadKeystoreAction())); fileItems.add( new DropDownItem( WIDGET_NAME_DOWNLOAD_KEYSTORE, MESSAGES.downloadKeystoreButton(), new DownloadKeystoreAction())); fileItems.add( new DropDownItem( WIDGET_NAME_DELETE_KEYSTORE, MESSAGES.deleteKeystoreButton(), new DeleteKeystoreAction())); // Connect -> {Connect to Companion; Connect to Emulator; Connect to USB; Reset Connections} connectItems.add( new DropDownItem( WIDGET_NAME_WIRELESS_BUTTON, MESSAGES.wirelessButton(), new WirelessAction())); connectItems.add( new DropDownItem( WIDGET_NAME_EMULATOR_BUTTON, MESSAGES.emulatorButton(), new EmulatorAction())); connectItems.add( new DropDownItem(WIDGET_NAME_USB_BUTTON, MESSAGES.usbButton(), new UsbAction())); connectItems.add(null); connectItems.add( new DropDownItem(WIDGET_NAME_RESET_BUTTON, MESSAGES.resetConnections(), new ResetAction())); connectItems.add( new DropDownItem( WIDGET_NAME_HARDRESET_BUTTON, MESSAGES.hardResetConnections(), new HardResetAction())); // Build -> {Show Barcode; Download to Computer; Generate YAIL only when logged in as an admin} buildItems.add( new DropDownItem( WIDGET_NAME_BUILD_BARCODE, MESSAGES.showBarcodeButton(), new BarcodeAction())); buildItems.add( new DropDownItem( WIDGET_NAME_BUILD_DOWNLOAD, MESSAGES.downloadToComputerButton(), new DownloadAction())); if (AppInventorFeatures.hasYailGenerationOption() && Ode.getInstance().getUser().getIsAdmin()) { buildItems.add(null); buildItems.add( new DropDownItem( WIDGET_NAME_BUILD_YAIL, MESSAGES.generateYailButton(), new GenerateYailAction())); } // Help -> {About, Library, Get Started, Tutorials, Troubleshooting, Forums, Report an Issue} helpItems.add(new DropDownItem(WIDGET_NAME_ABOUT, MESSAGES.aboutLink(), new AboutAction())); helpItems.add(null); helpItems.add( new DropDownItem(WIDGET_NAME_LIBRARY, MESSAGES.libraryLink(), new LibraryAction())); helpItems.add( new DropDownItem( WIDGET_NAME_GETSTARTED, MESSAGES.getStartedLink(), new GetStartedAction())); helpItems.add( new DropDownItem(WIDGET_NAME_TUTORIALS, MESSAGES.tutorialsLink(), new TutorialsAction())); helpItems.add( new DropDownItem( WIDGET_NAME_TROUBLESHOOTING, MESSAGES.troubleshootingLink(), new TroubleShootingAction())); helpItems.add(new DropDownItem(WIDGET_NAME_FORUMS, MESSAGES.forumsLink(), new ForumsAction())); helpItems.add(null); helpItems.add( new DropDownItem(WIDGET_NAME_FEEDBACK, MESSAGES.feedbackLink(), new FeedbackAction())); // Create the TopToolbar drop down menus. fileDropDown = new DropDownButton(WIDGET_NAME_PROJECT, MESSAGES.projectButton(), fileItems, false); connectDropDown = new DropDownButton(WIDGET_NAME_CONNECT_TO, MESSAGES.connectButton(), connectItems, false); buildDropDown = new DropDownButton(WIDGET_NAME_BUILD, MESSAGES.buildButton(), buildItems, false); helpDropDown = new DropDownButton(WIDGET_NAME_HELP, MESSAGES.helpLink(), helpItems, false); // Set the DropDown Styles fileDropDown.setStyleName("ode-TopPanelButton"); connectDropDown.setStyleName("ode-TopPanelButton"); buildDropDown.setStyleName("ode-TopPanelButton"); helpDropDown.setStyleName("ode-TopPanelButton"); // Add the Buttons to the Toolbar. toolbar.add(fileDropDown); toolbar.add(connectDropDown); toolbar.add(buildDropDown); toolbar.add(helpDropDown); // Only if logged in as an admin, add the Admin Button if (Ode.getInstance().getUser().getIsAdmin()) { List<DropDownItem> adminItems = Lists.newArrayList(); adminItems.add( new DropDownItem( WIDGET_NAME_DOWNLOAD_USER_SOURCE, MESSAGES.downloadUserSourceButton(), new DownloadUserSourceAction())); adminItems.add( new DropDownItem( WIDGET_NAME_SWITCH_TO_DEBUG, MESSAGES.switchToDebugButton(), new SwitchToDebugAction())); adminDropDown = new DropDownButton(WIDGET_NAME_ADMIN, MESSAGES.adminButton(), adminItems, false); adminDropDown.setStyleName("ode-TopPanelButton"); toolbar.add(adminDropDown); } initWidget(toolbar); }