List of usage examples for com.google.gwt.user.client.ui HorizontalPanel add
@Override public void add(Widget w)
From source file:com.google.appinventor.client.TopPanel.java
License:Open Source License
/** * Initializes and assembles all UI elements shown in the top panel. *//* www .j a va 2 s. co m*/ public TopPanel() { /* * The layout of the top panel is as follows: * * +-- topPanel ------------------------------------+ * |+-- logo --++-----tools-----++--links/account--+| * || || || || * |+----------++---------------++-----------------+| * +------------------------------------------------+ */ HorizontalPanel topPanel = new HorizontalPanel(); topPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE); // Create the Tools TopToolbar tools = new TopToolbar(); ode.setTopToolbar(tools); // Create the Links HorizontalPanel links = new HorizontalPanel(); links.setStyleName("ode-TopPanelLinks"); links.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE); if (Ode.getInstance().isReadOnly()) { Label readOnly = new Label(MESSAGES.readOnlyMode()); readOnly.setStyleName("ode-TopPanelWarningLabel"); links.add(readOnly); } // My Projects Link TextButton myProjects = new TextButton(MESSAGES.myProjectsTabName()); myProjects.setStyleName("ode-TopPanelButton"); myProjects.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { ode.switchToProjectsView(); } }); myProjects.setStyleName("ode-TopPanelButton"); links.add(myProjects); // Code on gallerydev branch // Gallery Link gallery = new TextButton(MESSAGES.tabNameGallery()); gallery.setStyleName("ode-TopPanelButton"); gallery.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { ode.switchToGalleryView(); } }); links.add(gallery); Config config = ode.getSystemConfig(); String guideUrl = config.getGuideUrl(); if (!Strings.isNullOrEmpty(guideUrl)) { TextButton guideLink = new TextButton(MESSAGES.guideTabName()); guideLink.addClickHandler(new WindowOpenClickHandler(guideUrl)); guideLink.setStyleName("ode-TopPanelButton"); links.add(guideLink); } // Feedback Link String feedbackUrl = config.getFeedbackUrl(); if (!Strings.isNullOrEmpty(feedbackUrl)) { TextButton feedbackLink = new TextButton(MESSAGES.feedbackTabName()); feedbackLink.addClickHandler(new WindowOpenClickHandler(feedbackUrl)); feedbackLink.setStyleName("ode-TopPanelButton"); links.add(feedbackLink); } /* // Code on master branch // Gallery Link if (Ode.getInstance().getUser().getIsAdmin()) { TextButton gallery = new TextButton(MESSAGES.galleryTabName()); gallery.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { Window.open("http://gallery.appinventor.mit.edu", "_blank", "scrollbars=1"); } }); gallery.setStyleName("ode-TopPanelButton"); links.add(gallery); } */ moderation = new TextButton(MESSAGES.tabNameModeration()); moderation.setStyleName("ode-TopPanelButton"); moderation.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent clickEvent) { ode.switchToModerationPageView(); } }); moderation.setVisible(false); links.add(moderation); // Create the Account Information rightPanel = new VerticalPanel(); rightPanel.setHeight("100%"); rightPanel.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE); HorizontalPanel account = new HorizontalPanel(); account.setStyleName("ode-TopPanelAccount"); // Account Drop Down Button List<DropDownItem> userItems = Lists.newArrayList(); // Sign Out userItems.add(new DropDownItem(WIDGET_NAME_SIGN_OUT, MESSAGES.signOutLink(), new SignOutAction())); accountButton = new DropDownButton(WIDGET_NAME_USER, " ", userItems, true); accountButton.setItemEnabled(WIDGET_NAME_MESSAGES, false); accountButton.setStyleName("ode-TopPanelButton"); // Language List<DropDownItem> languageItems = Lists.newArrayList(); String[] localeNames = LocaleInfo.getAvailableLocaleNames(); String nativeName; for (String localeName : localeNames) { if (!localeName.equals("default")) { SelectLanguage lang = new SelectLanguage(); lang.setLocale(localeName); nativeName = getDisplayName(localeName); languageItems.add(new DropDownItem(WIDGET_NAME_LANGUAGE, nativeName, lang)); } } String currentLang = LocaleInfo.getCurrentLocale().getLocaleName(); String nativeDisplayName = getDisplayName(currentLang); languageDropDown = new DropDownButton(WIDGET_NAME_LANGUAGE, nativeDisplayName, languageItems, true); languageDropDown.setStyleName("ode-TopPanelButton"); account.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE); account.add(links); account.add(languageDropDown); account.add(accountButton); rightPanel.add(account); // Add the Logo, Tools, Links to the TopPanel addLogo(topPanel); topPanel.add(tools); topPanel.add(rightPanel); topPanel.setCellVerticalAlignment(rightPanel, HorizontalPanel.ALIGN_MIDDLE); rightPanel.setCellHorizontalAlignment(account, HorizontalPanel.ALIGN_RIGHT); topPanel.setCellHorizontalAlignment(rightPanel, HorizontalPanel.ALIGN_RIGHT); initWidget(topPanel); setStyleName("ode-TopPanel"); setWidth("100%"); }
From source file:com.google.appinventor.client.TopPanel.java
License:Open Source License
private void addLogo(HorizontalPanel panel) { // Logo should be a link to App Inv homepage. Currently, after the user // has logged in, the top level *is* ODE; so for now don't make it a link. // Add timestamp to logo url to get around browsers that agressively cache // the image! This same trick is used in StorageUtil.getFilePath(). Image logo = new Image(LOGO_IMAGE_URL + "?t=" + System.currentTimeMillis()); logo.setSize("40px", "40px"); logo.setStyleName("ode-Logo"); String logoUrl = ode.getSystemConfig().getLogoUrl(); if (!Strings.isNullOrEmpty(logoUrl)) { logo.addClickHandler(new WindowOpenClickHandler(logoUrl)); }/*from w ww. j a v a2 s . com*/ panel.add(logo); panel.setCellWidth(logo, "50px"); Label title = new Label("MIT App Inventor 2"); Label version = new Label("Beta"); title.setStyleName("ode-LogoText"); version.setStyleName("ode-LogoVersion"); VerticalPanel titleContainer = new VerticalPanel(); titleContainer.add(title); titleContainer.add(version); titleContainer.setCellHorizontalAlignment(version, HorizontalPanel.ALIGN_RIGHT); panel.add(titleContainer); panel.setCellWidth(titleContainer, "180px"); panel.setCellHorizontalAlignment(logo, HorizontalPanel.ALIGN_LEFT); panel.setCellVerticalAlignment(logo, HorizontalPanel.ALIGN_MIDDLE); }
From source file:com.google.appinventor.client.TopToolbar.java
License:Open Source License
public TopToolbar() { /*/*from w w w .j ava 2 s . c o m*/ * 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> componentItems = Lists.newArrayList(); List<DropDownItem> connectItems = Lists.newArrayList(); List<DropDownItem> buildItems = Lists.newArrayList(); List<DropDownItem> helpItems = Lists.newArrayList(); // Should the UI be in read only mode? isReadOnly = Ode.getInstance().isReadOnly(); // File -> {New Project; Save; Save As; Checkpoint; |; Delete this Project; My Projects;} fileItems.add( new DropDownItem(WIDGET_NAME_MY_PROJECTS, MESSAGES.projectMenuItem(), new SwitchToProjectAction())); fileItems.add(null); if (!isReadOnly) { fileItems.add(new DropDownItem(WIDGET_NAME_NEW, MESSAGES.newProjectMenuItem(), new NewAction())); fileItems.add(new DropDownItem(WIDGET_NAME_IMPORTPROJECT, MESSAGES.importProjectMenuItem(), new ImportProjectAction())); fileItems.add(new DropDownItem(WIDGET_NAME_IMPORTTEMPLATE, MESSAGES.importTemplateButton(), new ImportTemplateAction())); fileItems.add(new DropDownItem(WIDGET_NAME_DELETE, MESSAGES.deleteProjectButton(), 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.checkpointMenuItem(), new CheckpointAction())); fileItems.add(null); } fileItems.add(new DropDownItem(WIDGET_NAME_EXPORTPROJECT, MESSAGES.exportProjectMenuItem(), new ExportProjectAction())); fileItems.add(new DropDownItem(WIDGET_NAME_EXPORTALLPROJECTS, MESSAGES.exportAllProjectsMenuItem(), new ExportAllProjectsAction())); fileItems.add(null); if (!isReadOnly) { fileItems.add(new DropDownItem(WIDGET_NAME_UPLOAD_KEYSTORE, MESSAGES.uploadKeystoreMenuItem(), new UploadKeystoreAction())); } fileItems.add(new DropDownItem(WIDGET_NAME_DOWNLOAD_KEYSTORE, MESSAGES.downloadKeystoreMenuItem(), new DownloadKeystoreAction())); if (!isReadOnly) { fileItems.add(new DropDownItem(WIDGET_NAME_DELETE_KEYSTORE, MESSAGES.deleteKeystoreMenuItem(), new DeleteKeystoreAction())); } // Connect -> {Connect to Companion; Connect to Emulator; Connect to USB; Reset Connections} connectItems.add(new DropDownItem(WIDGET_NAME_WIRELESS_BUTTON, MESSAGES.AICompanionMenuItem(), new WirelessAction())); connectItems.add( new DropDownItem(WIDGET_NAME_EMULATOR_BUTTON, MESSAGES.emulatorMenuItem(), new EmulatorAction())); connectItems.add(new DropDownItem(WIDGET_NAME_USB_BUTTON, MESSAGES.usbMenuItem(), new UsbAction())); connectItems.add(null); connectItems.add( new DropDownItem(WIDGET_NAME_RESET_BUTTON, MESSAGES.resetConnectionsMenuItem(), new ResetAction())); connectItems.add(new DropDownItem(WIDGET_NAME_HARDRESET_BUTTON, MESSAGES.hardResetConnectionsMenuItem(), 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.showBarcodeMenuItem(), new BarcodeAction())); buildItems.add(new DropDownItem(WIDGET_NAME_BUILD_DOWNLOAD, MESSAGES.downloadToComputerMenuItem(), new DownloadAction())); if (AppInventorFeatures.hasYailGenerationOption() && Ode.getInstance().getUser().getIsAdmin()) { buildItems.add(null); buildItems.add(new DropDownItem(WIDGET_NAME_BUILD_YAIL, MESSAGES.generateYailMenuItem(), new GenerateYailAction())); } // Help -> {About, Library, Get Started, Tutorials, Troubleshooting, Forums, Report an Issue, // Companion Information, Show Splash Screen} helpItems.add(new DropDownItem(WIDGET_NAME_ABOUT, MESSAGES.aboutMenuItem(), new AboutAction())); helpItems.add(null); Config config = Ode.getInstance().getSystemConfig(); String libraryUrl = config.getLibraryUrl(); if (!Strings.isNullOrEmpty(libraryUrl)) { helpItems.add(new DropDownItem(WIDGET_NAME_LIBRARY, MESSAGES.libraryMenuItem(), new WindowOpenAction(libraryUrl))); } String getStartedUrl = config.getGetStartedUrl(); if (!Strings.isNullOrEmpty(getStartedUrl)) { helpItems.add(new DropDownItem(WIDGET_NAME_GETSTARTED, MESSAGES.getStartedMenuItem(), new WindowOpenAction(getStartedUrl))); } String extensionsUrl = config.getExtensionsUrl(); if (!Strings.isNullOrEmpty(extensionsUrl)) { helpItems.add(new DropDownItem(WIDGET_NAME_EXTENSIONS, MESSAGES.extensionsMenuItem(), new WindowOpenAction(extensionsUrl))); } String tutorialsUrl = config.getTutorialsUrl(); if (!Strings.isNullOrEmpty(tutorialsUrl)) { helpItems.add(new DropDownItem(WIDGET_NAME_TUTORIALS, MESSAGES.tutorialsMenuItem(), new WindowOpenAction(tutorialsUrl))); } String troubleshootingUrl = config.getTroubleshootingUrl(); if (!Strings.isNullOrEmpty(troubleshootingUrl)) { helpItems.add(new DropDownItem(WIDGET_NAME_TROUBLESHOOTING, MESSAGES.troubleshootingMenuItem(), new WindowOpenAction(troubleshootingUrl))); } String forumsUrl = config.getForumsUrl(); if (!Strings.isNullOrEmpty(forumsUrl)) { helpItems.add(new DropDownItem(WIDGET_NAME_FORUMS, MESSAGES.forumsMenuItem(), new WindowOpenAction(forumsUrl))); } helpItems.add(null); String feedbackUrl = config.getFeedbackUrl(); if (!Strings.isNullOrEmpty(feedbackUrl)) { helpItems.add(new DropDownItem(WIDGET_NAME_FEEDBACK, MESSAGES.feedbackMenuItem(), new WindowOpenAction(feedbackUrl))); helpItems.add(null); } helpItems.add(new DropDownItem(WIDGET_NAME_COMPANIONINFO, MESSAGES.companionInformation(), new AboutCompanionAction())); helpItems.add(new DropDownItem(WIDGET_NAME_COMPANIONUPDATE, MESSAGES.companionUpdate(), new CompanionUpdateAction())); helpItems.add( new DropDownItem(WIDGET_NAME_SHOWSPLASH, MESSAGES.showSplashMenuItem(), new ShowSplashAction())); // Create the TopToolbar drop down menus. fileDropDown = new DropDownButton(WIDGET_NAME_PROJECT, MESSAGES.projectsTabName(), fileItems, false); connectDropDown = new DropDownButton(WIDGET_NAME_CONNECT_TO, MESSAGES.connectTabName(), connectItems, false); buildDropDown = new DropDownButton(WIDGET_NAME_BUILD, MESSAGES.buildTabName(), buildItems, false); helpDropDown = new DropDownButton(WIDGET_NAME_HELP, MESSAGES.helpTabName(), 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); // Commented out language switching until we have a clean Chinese translation. (AFM) 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.downloadUserSourceMenuItem(), new DownloadUserSourceAction())); adminItems.add(new DropDownItem(WIDGET_NAME_SWITCH_TO_DEBUG, MESSAGES.switchToDebugMenuItem(), new SwitchToDebugAction())); adminItems.add(new DropDownItem(WIDGET_NAME_USER_ADMIN, "User Admin", new SwitchToUserAdminAction())); adminDropDown = new DropDownButton(WIDGET_NAME_ADMIN, MESSAGES.adminTabName(), adminItems, false); adminDropDown.setStyleName("ode-TopPanelButton"); toolbar.add(adminDropDown); } initWidget(toolbar); }
From source file:com.google.appinventor.client.widgets.boxes.ColumnLayout.java
License:Open Source License
@Override public void apply(WorkAreaPanel workArea) { // Clear base panel workArea.clear();/*ww w .j a va 2 s . c o m*/ // Horizontal panel to hold columns HorizontalPanel horizontalPanel = new HorizontalPanel(); horizontalPanel.setSize("100%", "100%"); workArea.add(horizontalPanel); // Initialize columns for (Column column : columns) { horizontalPanel.add(column.columnPanel); workArea.getWidgetDragController().registerDropController(column); // Add invisible dummy widget to prevent column from collapsing when it contains no boxes column.columnPanel.add(new Label()); // Add boxes from layout List<BoxDescriptor> boxes = column.boxes; for (int index = 0; index < boxes.size(); index++) { BoxDescriptor bd = boxes.get(index); Box box = workArea.createBox(bd); if (box != null) { column.insert(box, index); box.restoreLayoutSettings(bd); } } } workArea.getWidgetDragController().addDragHandler(changeDetector); }
From source file:com.google.appinventor.client.widgets.LabeledTextBox.java
License:Open Source License
/** * Creates a new TextBox with the given leading caption. * * @param caption caption for leading label *//*from w w w . j a v a 2 s . c om*/ public LabeledTextBox(String caption) { HorizontalPanel panel = new HorizontalPanel(); Label label = new Label(caption); panel.add(label); textbox = new TextBox(); textbox.setWidth("100%"); panel.add(textbox); panel.setCellWidth(label, "40%"); initWidget(panel); setWidth("100%"); }
From source file:com.google.appinventor.client.widgets.LabeledTextBox.java
License:Open Source License
/** * Use this TextBox if you want to have text validation while a user is typing * * @param caption caption for leading label * @param validator The validator to use for a specific textBox */// ww w. j av a 2 s . c o m public LabeledTextBox(String caption, Validator validator) { this.validator = validator; HorizontalPanel panel = new HorizontalPanel(); Label label = new Label(caption); panel.add(label); textbox = new TextBox(); defaultTextBoxColor = textbox.getElement().getStyle().getBorderColor(); textbox.setWidth("100%"); panel.add(textbox); panel.setCellWidth(label, "40%"); HorizontalPanel errorPanel = new HorizontalPanel(); errorLabel = new Label(""); errorPanel.add(errorLabel); VerticalPanel vp = new VerticalPanel(); vp.add(panel); vp.add(errorPanel); vp.setHeight("85px"); initWidget(vp); setWidth("100%"); }
From source file:com.google.appinventor.client.widgets.properties.AdditionalChoicePropertyEditor.java
License:Open Source License
/** * Initializes the additional choice panel. * * <p>This method must be called from any implementor's constructor. * * @param panel panel containing additional choices *///from w w w . ja va2 s. c o m protected void initAdditionalChoicePanel(Panel panel) { Button cancelButton = new Button(MESSAGES.cancelButton()); cancelButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { closeAdditionalChoiceDialog(false); } }); Button okButton = new Button(MESSAGES.okButton()); okButton.addClickHandler(new ClickHandler() { @Override public void onClick(ClickEvent event) { closeAdditionalChoiceDialog(true); } }); HorizontalPanel buttonPanel = new HorizontalPanel(); buttonPanel.add(cancelButton); buttonPanel.add(okButton); buttonPanel.setWidth("100%"); buttonPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT); VerticalPanel contentPanel = new VerticalPanel(); contentPanel.add(panel); contentPanel.add(buttonPanel); popup = new PopupPanel(false, true); popup.setAutoHideEnabled(true); popup.setWidget(contentPanel); popup.setStylePrimaryName("ode-MultipleChoicePropertyEditor"); }
From source file:com.google.appinventor.client.widgets.Toolbar.java
License:Open Source License
/** * Initializes and assembles all commands into buttons in the toolbar. *///w ww . j a v a 2 s .c o m public Toolbar() { buttonMap = new HashMap<String, TextButton>(); dropDownButtonMap = new HashMap<String, DropDownButton>(); leftButtons = new HorizontalPanel(); leftButtons.setSpacing(4); rightButtons = new HorizontalPanel(); rightButtons.setSpacing(4); rightButtons.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT); HorizontalPanel toolbar = new HorizontalPanel(); toolbar.add(leftButtons); // this nesting keeps buttons left aligned toolbar.add(rightButtons); toolbar.setCellHorizontalAlignment(rightButtons, HorizontalPanel.ALIGN_RIGHT); toolbar.setWidth("100%"); toolbar.setStylePrimaryName("ya-Toolbar"); initWidget(toolbar); }
From source file:com.google.appinventor.client.wizards.InputTemplateUrlWizard.java
License:Open Source License
/** * Creates a new YoungAndroid project wizard. */// w w w . j av a 2 s . c om public InputTemplateUrlWizard(final NewUrlDialogCallback callback) { super(MESSAGES.inputNewUrlCaption(), true, true); // Initialize the UI. setStylePrimaryName("ode-DialogBox"); HorizontalPanel panel = new HorizontalPanel(); urlTextBox = new LabeledTextBox(MESSAGES.newUrlLabel()); urlTextBox.getTextBox().setWidth("250px"); urlTextBox.getTextBox().addKeyUpHandler(new KeyUpHandler() { @Override public void onKeyUp(KeyUpEvent event) { int keyCode = event.getNativeKeyCode(); if (keyCode == KeyCodes.KEY_ENTER) { handleOkClick(); } else if (keyCode == KeyCodes.KEY_ESCAPE) { handleCancelClick(); } } }); VerticalPanel page = new VerticalPanel(); panel.add(urlTextBox); page.add(panel); addPage(page); // Create finish command (create a new Young Android project). initFinishCommand(new Command() { @Override public void execute() { String hostUrl = urlTextBox.getText(); if (TemplateUploadWizard.hasUrl(hostUrl)) { Window.alert("The Url " + hostUrl + " already exists."); } else { callback.updateTemplateOptions(hostUrl); } } }); }
From source file:com.google.appinventor.client.wizards.TemplateUploadWizard.java
License:Open Source License
/** * The UI consists of a vertical panel that holds a drop-down list box, * a Horizontal panel that holds the templates list (cell list) plus * the selected template. This is inserted in the Wizard dialog. * * @param templates should never be null * @return the main panel for Wizard dialog. *///w w w .j av a 2 s . c o m VerticalPanel createUI(final ArrayList<TemplateInfo> templates) { VerticalPanel panel = new VerticalPanel(); panel.setStylePrimaryName("gwt-SimplePanel"); panel.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE); panel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER); templatePanel = new HorizontalPanel(); templatePanel.add(makeTemplateSelector(templates)); if (templates.size() > 0) templatePanel.add(new TemplateWidget(templates.get(0), templateHostUrl)); templatesMenu = makeTemplatesMenu(); HorizontalPanel hPanel = new HorizontalPanel(); hPanel.add(templatesMenu); removeButton = new Button("Remove this repository", new ClickHandler() { @Override public void onClick(ClickEvent arg0) { removeCurrentlySelectedRepository(); } }); removeButton.setVisible(false); hPanel.add(removeButton); panel.add(hPanel); panel.add(templatePanel); return panel; }