NewFormDialog(final YoungAndroidProjectNode projectRootNode) { super(false, true); setStylePrimaryName("ode-DialogBox"); setText(MESSAGES.newFormTitle()); VerticalPanel contentPanel = new VerticalPanel(); final String prefix = "Screen"; final int prefixLength = prefix.length(); int highIndex = 0; // Collect the existing form names so we can prevent duplicate form names. otherFormNames = new HashSet<String>(); for (ProjectNode source : projectRootNode.getAllSourceNodes()) { if (source instanceof YoungAndroidFormNode) { String formName = ((YoungAndroidFormNode) source).getFormName(); otherFormNames.add(formName); if (formName.startsWith(prefix)) { try { highIndex = Math.max(highIndex, Integer.parseInt(formName.substring(prefixLength))); } catch (NumberFormatException e) { continue; } } } } String defaultFormName = prefix + (highIndex + 1); newNameTextBox = new LabeledTextBox(MESSAGES.formNameLabel()); newNameTextBox.setText(defaultFormName); newNameTextBox .getTextBox() .addKeyUpHandler( new KeyUpHandler() { @Override public void onKeyUp(KeyUpEvent event) { int keyCode = event.getNativeKeyCode(); if (keyCode == KeyCodes.KEY_ENTER) { handleOkClick(projectRootNode); } else if (keyCode == KeyCodes.KEY_ESCAPE) { hide(); executionFailedOrCanceled(); } } }); contentPanel.add(newNameTextBox); String cancelText = MESSAGES.cancelButton(); String okText = MESSAGES.okButton(); // Keeps track of the total number of screens. int formCount = otherFormNames.size() + 1; if (formCount > MAX_FORM_COUNT) { HorizontalPanel errorPanel = new HorizontalPanel(); HTML tooManyScreensLabel = new HTML(MESSAGES.formCountErrorLabel()); errorPanel.add(tooManyScreensLabel); errorPanel.setSize("100%", "24px"); contentPanel.add(errorPanel); okText = MESSAGES.addScreenButton(); cancelText = MESSAGES.cancelScreenButton(); // okText = "Add"; // cancelText = "Don't Add"; } Button cancelButton = new Button(cancelText); cancelButton.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { hide(); executionFailedOrCanceled(); } }); Button okButton = new Button(okText); okButton.addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { handleOkClick(projectRootNode); } }); HorizontalPanel buttonPanel = new HorizontalPanel(); buttonPanel.add(cancelButton); buttonPanel.add(okButton); buttonPanel.setSize("100%", "24px"); contentPanel.add(buttonPanel); contentPanel.setSize("320px", "100%"); add(contentPanel); }