/** * Sets the state icon. * * <p>The state icon indicates if a resource is exported, secure, etc. * * <p> * * @param icon the state icon */ public void setStateIcon(StateIcon icon) { if (m_stateIcon == null) { m_stateIcon = new HTML(); m_stateIcon.addClickHandler(m_iconSuperClickHandler); m_contentPanel.add(m_stateIcon); } String iconTitle = null; switch (icon) { case export: m_stateIcon.setStyleName( I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().stateIcon() + " " + I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().export()); iconTitle = Messages.get().key(Messages.GUI_ICON_TITLE_EXPORT_0); break; case secure: m_stateIcon.setStyleName( I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().stateIcon() + " " + I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().secure()); iconTitle = Messages.get().key(Messages.GUI_ICON_TITLE_SECURE_0); break; default: m_stateIcon.setStyleName(I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().stateIcon()); break; } m_stateIcon.setTitle(concatIconTitles(m_iconTitle, iconTitle)); m_stateIcon.getElement().getStyle().setCursor(Style.Cursor.POINTER); }
/** * This method is called when GWT loads the Notes application (as defined in the Notes.gwt.xml). */ public void onModuleLoad() { final HorizontalPanel mainpanel = new HorizontalPanel(); final HTML displayTitle = new HTML("Existing Notes"); displayTitle.setStyleName("displayTitle"); final HTML entryTitle = new HTML("Create A Note"); entryTitle.setStyleName("entryTitle"); final VerticalPanel displayPanel = new VerticalPanel(); displayPanel.setVerticalAlignment(VerticalPanel.ALIGN_TOP); displayPanel.setStyleName("displayPanel"); displayPanel.add(displayTitle); final VerticalPanel entryPanel = new VerticalPanel(); entryPanel.setVerticalAlignment(VerticalPanel.ALIGN_TOP); entryPanel.setStyleName("entryPanel"); entryPanel.add(entryTitle); displayPanel.add(notesPanel); final VerticalPanel form = createForm(); entryPanel.add(form); mainpanel.add(displayPanel); mainpanel.add(entryPanel); RootPanel.get("notes").add(mainpanel); getNotes(); }
public DetailsDialog(JSOModel details) { // setWidth("500px"); // Use this opportunity to set the dialog's caption. setText("Awaaz.De Administration"); // Create a VerticalPanel to contain the 'about' label and the 'OK' button. VerticalPanel outer = new VerticalPanel(); outer.setWidth("100%"); outer.setSpacing(10); // Create the 'about' text and set a style name so we can style it with CSS. String startdate = details.get("startdate"); String completed = details.get("completed"); String pending = details.get("pending"); String surveyDetails = "<b>Start: </b> " + startdate + "<br><br>"; int numrecipients = completed.split(", ").length + pending.split(", ").length; // For some reason, the above line creates an array of length one if // one of the strings is empty // Assumes that completed and pending cannot both be empty if (completed.equals("") || pending.equals("")) { numrecipients -= 1; } surveyDetails += "<b>Num Recipients: </b>" + String.valueOf(numrecipients); surveyDetails += "<br><br><b>Pending:</b>"; HTML pendingHTML = new HTML(surveyDetails); pendingHTML.setStyleName("mail-AboutText"); outer.add(pendingHTML); Label pendingLbl = new Label(pending, true); pendingLbl.setWordWrap(true); pendingLbl.setStyleName("dialog-NumsText"); outer.add(pendingLbl); HTML compHTML = new HTML("<br><b>Completed:</b>"); compHTML.setStyleName("mail-AboutText"); outer.add(compHTML); Label completedLbl = new Label(completed, true); completedLbl.setWordWrap(true); completedLbl.setStyleName("dialog-NumsText"); outer.add(completedLbl); // Create the 'OK' button, along with a handler that hides the dialog // when the button is clicked. outer.add( new Button( "Close", new ClickHandler() { public void onClick(ClickEvent event) { hide(); } })); setWidget(outer); }
public ProgressBar(String text) { FlowPanel pane = new FlowPanel(); pane.getElement().getStyle().setPosition(Position.RELATIVE); initWidget(pane); progress = new HTML(); HTML content = new HTML(text); content.setStyleName("progress-text"); pane.add(progress); pane.add(content); content.setWidth("100%"); setStyleName("progress-bar"); progress.setStyleName("progress"); progress.setHeight("100%"); }
public BlogEntry(Entry entry, Blog blog) { setStyleName(CssClasses.BLOG_ENTRY); this.blog = blog; HTML msg = new HTML(); msg.setHTML(entry.getText()); msg.setStyleName(CssClasses.BLOG_TEXT); Label author = new Label(); author.setText(entry.getAuthor().getName()); author.setStyleName(CssClasses.AUTHOR); Label date = new Label(); date.setText(DateTimeFormat.getFormat("dd. MMM yyyy, HH:mm").format(entry.getDate())); date.setStyleName(CssClasses.DATE); commentContainer.setStyleName(CssClasses.BLOG_ENTRY_COMMENT_CONTAINER); add(msg); add(date); add(author); add(new Separator()); add(new CommentForm(this)); add(commentContainer); }
private Widget appendComment(DiscussionRecord r) { SmallLabel hrd = new SmallLabel(constants.smallCommentBy0On1Small(r.author, new Date(r.timestamp))); hrd.addStyleName("discussion-header"); commentList.add(hrd); String[] parts = r.note.split("\n"); if (parts.length > 0) { StringBuilder txtBuilder = new StringBuilder(); for (int i = 0; i < parts.length; i++) { txtBuilder.append(parts[i]); if (i != parts.length - 1) { txtBuilder.append("<br/>"); } } HTML hth = new HTML(txtBuilder.toString()); hth.setStyleName("form-field"); commentList.add(hth); } else { Label lbl = new Label(r.note); lbl.setStyleName("form-field"); commentList.add(lbl); } commentList.add(new HTML("<br/>")); return hrd; }
public HelpDialog() { setMaximizable(true); setBodyBorder(false); // setIcon(Resources.ICONS.side_list()); setHeading("Help"); setWidth(750); setHeight(400); setHideOnButtonClick(true); setLayout(new FitLayout()); HTML html = new HTML(htmlString); html.setStyleName("helpDialog"); add(html); setButtons(""); setScrollMode(Scroll.AUTO); Button dontShowOnStartup = new Button( "Close", new SelectionListener<ButtonEvent>() { @Override public void componentSelected(ButtonEvent ce) { hide(); } }); dontShowOnStartup.setWidth("50%"); addButton(dontShowOnStartup); show(); }
public void showError(String title, String message) { dialogBox.setText(title); errorLabel.setText(message); closeButton.setVisible(true); errorLabel.setStyleName("serverResponseLabelError"); dialogBox.center(); }
public AboutDialog() { // Use this opportunity to set the dialog's caption. setText(LocaleText.get("about") + " " + FormDesignerUtil.getTitle()); // Create a VerticalPanel to contain the 'about' label and the 'OK' button. VerticalPanel outer = new VerticalPanel(); // Create the 'about' text and set a style name so we can style it with CSS. HTML text = new HTML(LocaleText.get("aboutMessage")); text.setStyleName("formDesigner-AboutText"); outer.add(text); // Create the 'OK' button, along with a listener that hides the dialog // when the button is clicked. Button btn = new Button( LocaleText.get("close"), new ClickHandler() { public void onClick(ClickEvent event) { hide(); } }); outer.add(btn); outer.setCellHorizontalAlignment(btn, HasAlignment.ALIGN_CENTER); setWidget(outer); }
@Override public void setErrors(Set<ErrorDisplay> errors) { HashSet<ErrorDisplay> errorsToRemove = new HashSet<ErrorDisplay>(containedErrros); errorsToRemove.removeAll(errors); for (ErrorDisplay errorDisplay : errorsToRemove) { Widget widget = widgets.get(errorDisplay); errorsList.remove(widget); widgets.remove(widget); } HashSet<ErrorDisplay> errorsToAdd = new HashSet<ErrorView.ErrorDisplay>(errors); errorsToAdd.removeAll(containedErrros); String errorViewItemClass = ApplicationResources.INSTANCE.css().errorViewItemClass(); String errorViewImageClass = ApplicationResources.INSTANCE.css().errorViewImageClass(); for (ErrorDisplay errorDisplay : errorsToAdd) { SafeHtml html = template.errorDisplayTemplate( errorImageSafeUri, errorDisplay.getErrorInfo(), errorViewImageClass); HTML widget = new HTML(html); widget.setStyleName(errorViewItemClass); widgets.put(errorDisplay, widget); errorsList.add(widget); } containedErrros = new HashSet<ErrorView.ErrorDisplay>(errors); int height = 0; for (int i = 0; i < errorsList.getWidgetCount(); ++i) { Widget widget = errorsList.getWidget(i); widget.getElement().getStyle().setTop(height, Unit.PX); height += widget.getOffsetHeight() + 5; } }
protected void addHeader(String image, String title, Widget titleIcon) { HTML name = new HTML("<div class='x-form-field'><b>" + title + "</b></div>"); name.setStyleName("resource-name-Label"); HorizontalPanel horiz = new HorizontalPanel(); horiz.add(name); horiz.add(titleIcon); doHeader(image, horiz); }
private String getHeaderString(String text, ImageResource imageResource) { HorizontalPanel hPanel = new HorizontalPanel(); hPanel.setSpacing(0); hPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); hPanel.add(new Image(imageResource)); HTML headerText = new HTML(text); headerText.setStyleName("cw-StackPanelHeader"); hPanel.add(headerText); return hPanel.getElement().getString(); }
private HTML getHTML(String html, String styleName) { html = html.replaceAll("</p>", " ") .replaceAll("<p>", "") .replaceAll("<br data-mce-bogus=\"1\">", "") .replaceAll("<br>", "") .replaceAll("</br>", ""); HTML contentHtml = new HTML(html); contentHtml.setStyleName(styleName); return contentHtml; }
/** * Constructor. * * <p> * * @param editWidget the edit widget to wrap */ public FormWidgetWrapper(I_EditWidget editWidget) { m_mainPanel = new FlowPanel(); m_label = new HTML(); m_label.setStyleName(I_LayoutBundle.INSTANCE.form().label()); m_mainPanel.add(m_label); m_editWidget = editWidget; m_mainPanel.add(m_editWidget); m_editWidget.asWidget().addStyleName(I_LayoutBundle.INSTANCE.form().widget()); initWidget(m_mainPanel); }
private String getHTML(String html) { html = html.replaceAll("</p>", " ") .replaceAll("<p>", "") .replaceAll("<br data-mce-bogus=\"1\">", "") .replaceAll("<br>", "") .replaceAll("</br>", ""); HTML contentHtml = new HTML(html); contentHtml.setStyleName(PlayerBundle.INSTANCE.getPlayerStyle().setEllipses()); return html; }
public void showInfo(String title, String message) { dialogBox.setText(title); errorLabel.setText(message); errorLabel.setStyleName("infoText"); closeButton.setVisible(false); dialogBox.center(); new Timer() { public void run() { dialogBox.hide(); } }.schedule(2000); }
private Widget createHeaderWidget(String text, ImageResource image) { // Add the image and text to a horizontal panel HorizontalPanel hPanel = new HorizontalPanel(); hPanel.setHeight("100%"); hPanel.setSpacing(0); hPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); hPanel.add(new Image(image)); HTML headerText = new HTML(text); headerText.setStyleName("cw-StackPanelHeader"); hPanel.add(headerText); return new SimplePanel(hPanel); }
/** * Sets the lock icon. * * <p> * * @param icon the icon to use * @param iconTitle the icon title */ public void setLockIcon(LockIcon icon, String iconTitle) { if (m_lockIcon == null) { m_lockIcon = new HTML(); m_lockIcon.addClickHandler(m_iconSuperClickHandler); m_contentPanel.add(m_lockIcon); } switch (icon) { case CLOSED: m_lockIcon.setStyleName( I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockIcon() + " " + I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockClosed()); break; case OPEN: m_lockIcon.setStyleName( I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockIcon() + " " + I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockOpen()); break; case SHARED_CLOSED: m_lockIcon.setStyleName( I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockIcon() + " " + I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockSharedClosed()); break; case SHARED_OPEN: m_lockIcon.setStyleName( I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockIcon() + " " + I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockSharedOpen()); break; case NONE: default: m_lockIcon.setStyleName(I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().lockIcon()); } m_lockIcon.setTitle(concatIconTitles(m_iconTitle, iconTitle)); m_lockIcon.getElement().getStyle().setCursor(Style.Cursor.POINTER); }
public void showHTMLCode(String codeSource) { final DialogBox codePopup = new DialogBox(true, true); codePopup.setGlassEnabled(true); codePopup.setText(constants.showCodeTitle()); String[] lignesCode = codeSource.split("\n"); VerticalPanel tab = new VerticalPanel(); for (String ligneCode : lignesCode) { String maLigne = new String(ligneCode); String[] ligne = ligneCode.split("\t"); for (String texte : ligne) { if (texte.equals("")) { maLigne = " " + maLigne; } } maLigne = maLigne.replace("<", "<"); maLigne = maLigne.replace("div", "<span style='color: blue;'>div</span>"); maLigne = maLigne.replace("id=", "<span style='color: red;'>id</span>="); maLigne = maLigne.replace("class", "<span style='color: red;'>class</span>"); int commentBegin = maLigne.indexOf("<!--"); if (commentBegin != -1) { int commentEnd = maLigne.indexOf("-->"); String comment = maLigne.substring(commentBegin, commentEnd + 3); maLigne = maLigne.replace(comment, "<span style='color: #008000;'>" + comment + "</span>"); } HTML htmlLine = new HTML(maLigne); htmlLine.setStyleName("builder-source"); tab.add(htmlLine); } Button closeButton = new Button( constants.close(), new ClickHandler() { public void onClick(ClickEvent event) { codePopup.hide(); } }); tab.add(closeButton); tab.setCellHorizontalAlignment(closeButton, HasHorizontalAlignment.ALIGN_CENTER); codePopup.add(tab); codePopup.center(); codePopup.show(); }
/** * The constructor sets up the UI and passes the data fetching parameters to the sub widgets * * @param service * @param documentID * @param instructor * @param unsavedDocumentStrategy */ public InstructorPreferencesView( CachedOpenWorkingCopyDocument openDocument, InstructorGWT instructor) { this.openDocument = openDocument; instructor.verify(); this.instructor = instructor; HTML instructorName = new HTML("Instructor Time Preferences"); instructorName.setStyleName("bigBold"); DOM.setElementAttribute(instructorName.getElement(), "id", "instructorName"); InstructorPreferencesView.this.add(instructorName); InstructorPreferencesView.this.timePrefs = new TimePrefsWidget( InstructorPreferencesView.this.openDocument, InstructorPreferencesView.this.instructor); InstructorPreferencesView.this.setSpacing(20); InstructorPreferencesView.this.add(timePrefs); InstructorPreferencesView.this.setStyleName("preferencesPanel"); InstructorPreferencesView.this.coursePrefs = new CoursePrefsWidget( InstructorPreferencesView.this.openDocument, InstructorPreferencesView.this.instructor); InstructorPreferencesView.this.coursePrefs.setStyleName("otherCenterness"); InstructorPreferencesView.this.coursePrefs.afterPush(); HTML cprefs = new HTML("Instructor Course Preferences"); cprefs.addStyleName("bigBold"); InstructorPreferencesView.this.add(cprefs); InstructorPreferencesView.this.add(coursePrefs); closebutton = new Button( "Close", new ClickHandler() { public void onClick(ClickEvent event) { parent.hide(); } }); if (additionalCloseHandler != null) { closebutton.addClickHandler(additionalCloseHandler); additionalCloseHandler = null; } DOM.setElementAttribute(closebutton.getElement(), "id", "s_prefCloseBtn"); InstructorPreferencesView.this.add(closebutton); InstructorPreferencesView.this.setCellHorizontalAlignment(closebutton, ALIGN_RIGHT); }
/** * Get a string representation of the header that includes an image and some text. * * @param text the header text * @param image the {@link ImageResource} to add next to the header * @return the header as a string */ @ShowcaseSource private String getHeaderString(String text, ImageResource image) { // Add the image and text to a horizontal panel HorizontalPanel hPanel = new HorizontalPanel(); hPanel.setSpacing(0); hPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE); hPanel.add(new Image(image)); HTML headerText = new HTML(text); headerText.setStyleName("cw-StackPanelHeader"); hPanel.add(headerText); // Return the HTML string for the panel return hPanel.getElement().getString(); }
@Override public Object getProperty(Object object, String propertyName) { Bloc value = (Bloc) object; if ("draganddrop".equals(propertyName)) { HTML html = new HTML(" "); html.setStyleName("DragRowHandle"); if (controller != null) { BlocClipboard clipboard = new BlocClipboard(value); controller.registerDrag(html, mapper.map(value), clipboard, GROUPNAME); controller.registerDrop(html, clipboard, GROUPNAME); } html.setVisible(!isReadOnly()); return html; } else if ("content".equals(propertyName)) { Component component = newComponent(); component.setValue(value); ItemWidget itemWidget = new ItemWidget(component, mapper); items.add(itemWidget); return itemWidget; } else if (("action").equals(propertyName)) { ActionsPanel actionsPanel = new ActionsPanel(); actionsPanel .getDelete() .addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { if (!isReadOnly()) { if (Window.confirm("Supprimer ce " + contentColumnName + " ?")) { Cell cell = view.getGrid().getCellForEvent(event); Widget w = view.getGrid().getWidget(cell.getRowIndex(), 1); if (w instanceof ItemWidget) { ItemWidget itemWidget = (ItemWidget) w; removeItem(itemWidget.getValue()); items.remove(itemWidget); } refreshWidget(); ValueChangeEvent.fire(ExtendedAbstractComponent.this, getValue()); } } } }); actionsPanel.setVisible(!isReadOnly()); return actionsPanel; } return ""; }
public void init() { super.init(); searchWidget = new SearchWidget(watch); searchWidget.init(); refreshImage = new Image(watch.getSkinFile(Constants.IMAGE_REFRESH)); refreshImage.setStyleName(watch.getStyleName("titlebar", "refresh")); refreshImage.setTitle(watch.getTranslation("refresh")); refreshImage.addClickListener( new ClickListener() { public void onClick(Widget widget) { watch.refreshArticleList(); } }); title.setStyleName(watch.getStyleName("titlebar", "title")); panel.add(title); panel.add(refreshImage); panel.add(searchWidget); refreshData(); }
public TitlePanel() { text = new HTML(hardCodedText); text.setStyleName("title-text"); // initialize the DockPanel dockPanel = new DockPanel(); // horizontalPanel = new HorizontalPanel(); if (dockPanel != null) { // indentation/border between text and frame dockPanel.setSpacing(3); dockPanel.add(text, DockPanel.CENTER); dockPanel.setCellHorizontalAlignment(text, DockPanel.ALIGN_CENTER); dockPanel.setCellVerticalAlignment(text, DockPanel.ALIGN_MIDDLE); dockPanel.setWidth("100%"); dockPanel.setCellWidth(text, "100%"); dockPanel.setStyleName("title-panel"); } else { System.out.println("Unable to create dockPanel panels"); throw new NullPointerException("Unable to initialize the dockPanel panel"); } }
public static Handler addHighlighting( @NotNull final TextBox textBox, final Highlighter... highlighters) { textBox.setStyleName("exprEditorInput"); Panel p = (Panel) textBox.getParent(); HTML html = new HTML(); html.setStyleName("exprEditorDiv"); p.add(html); Handler handler = new Handler(html, highlighters); handler.setup(textBox); html.addMouseUpHandler( new MouseUpHandler() { @Override public void onMouseUp(MouseUpEvent event) { textBox.setFocus(true); } }); return handler; }
/** Makes the Header (North) view of the WMT GUI. */ public ViewNorth() { this.setStyleName("wmt-NavBar"); this.setVerticalAlignment(ALIGN_MIDDLE); HTML title = new HTML(Constants.TITLE_TOP_PANEL); title.setStyleName("wmt-NavBarTitle"); userPanel = new UserPanel(); this.add(title); this.add(userPanel); // Handle sign out event. userPanel .getSignOutButton() .addClickHandler( new ClickHandler() { @Override public void onClick(ClickEvent event) { data.security.getAuthenticationHandler().signOut(); } }); }
/** Status */ public Status() { super(false, true); hPanel = new HorizontalPanel(); image = new Image(OKMBundleResources.INSTANCE.indicator()); msg = new HTML(""); space = new HTML(""); hPanel.add(image); hPanel.add(msg); hPanel.add(space); hPanel.setCellVerticalAlignment(image, HasAlignment.ALIGN_MIDDLE); hPanel.setCellVerticalAlignment(msg, HasAlignment.ALIGN_MIDDLE); hPanel.setCellHorizontalAlignment(image, HasAlignment.ALIGN_CENTER); hPanel.setCellWidth(image, "30px"); hPanel.setCellWidth(space, "7px"); hPanel.setHeight("25px"); msg.setStyleName("okm-NoWrap"); super.hide(); setWidget(hPanel); }
public CommitMessageBlock() { description = new HTML(); description.setStyleName(Gerrit.RESOURCES.css().changeScreenDescription()); initWidget(description); }
private ComponentHelpPopup(final SimpleComponentDescriptor scd, final Widget sender) { // Create popup panel. super(true); setStyleName("ode-ComponentHelpPopup"); setTitle(scd.getName()); // Create title from component name. Label titleBar = new Label(TranslationDesignerPallete.getCorrespondingString(scd.getName())); setTitle(scd.getName()); titleBar.setStyleName("ode-ComponentHelpPopup-TitleBar"); // Create content from help string. HTML helpText = new HTML( TranslationDesignerPallete.getCorrespondingString(scd.getName() + "-helpString")); helpText.setStyleName("ode-ComponentHelpPopup-Body"); // Create link to more information. This would be cleaner if // GWT supported String.format. HTML link; String categoryDocUrlString = scd.getCategoryDocUrlString(); if (categoryDocUrlString == null) { link = new HTML( "<a href=\"" + Ode.APP_INVENTOR_DOCS_URL + "/reference/components/index.html\" target=_blank>" + MESSAGES.moreInformation() + "</a>"); } else { link = new HTML( "<a href=\"" + Ode.APP_INVENTOR_DOCS_URL + "/reference/components/" + categoryDocUrlString + ".html#" + scd.getName() + "\" target=_blank>" + MESSAGES.moreInformation() + "</a>"); } link.setStyleName("ode-ComponentHelpPopup-Link"); // Create panel to hold the above three widgets and act as the // popup's widget. VerticalPanel inner = new VerticalPanel(); inner.add(titleBar); inner.add(helpText); inner.add(link); setWidget(inner); // When the panel is closed, save the time in milliseconds. // This will help us avoid immediately reopening it if the user // closed it by clicking on the question-mark icon. addPopupListener( new PopupListener() { @Override public void onPopupClosed(PopupPanel sender, boolean autoClosed) { lastClosureTime = System.currentTimeMillis(); } }); // Use a Pinch Zoom aware PopupPanel.PositionCallback to handle positioning to // avoid the Google Chrome Pinch Zoom bug. setPopupPositionAndShow( new PZAwarePositionCallback(sender.getElement()) { @Override public void setPosition(int offsetWidth, int offsetHeight) { // Position the upper-left of the panel just to the right of the // question-mark icon, unless that would make it too low. final int X_OFFSET = 20; final int Y_OFFSET = -5; if (Window.Navigator.getUserAgent().contains("Chrome") && isPinchZoomed()) { setPopupPosition( getTrueAbsoluteLeft() + 1 + X_OFFSET, Math.min( getTrueAbsoluteTop() + 1 + Y_OFFSET, Math.max(0, Window.getClientHeight() - offsetHeight + Y_OFFSET))); } else { setPopupPosition( sender.getAbsoluteLeft() + X_OFFSET, Math.min( sender.getAbsoluteTop() + Y_OFFSET, Math.max(0, Window.getClientHeight() - offsetHeight + Y_OFFSET))); } } }); }
public Widget asWidget() { final TabPanel tabs = new TabPanel(); tabs.setStyleName("default-tabpanel"); // ------- VerticalPanel layout = new VerticalPanel(); layout.setStyleName("window-content"); // Create a FormPanel and point it at a service. final FormPanel form = new FormPanel(); String url = Console.getBootstrapContext().getProperty(BootstrapContext.DEPLOYMENT_API); form.setAction(url); form.setEncoding(FormPanel.ENCODING_MULTIPART); form.setMethod(FormPanel.METHOD_POST); // Create a panel to hold all of the form widgets. VerticalPanel panel = new VerticalPanel(); panel.getElement().setAttribute("style", "width:100%"); form.setWidget(panel); // Create a FileUpload widgets. final FileUpload upload = new FileUpload(); upload.setName("uploadFormElement"); panel.add(upload); final HTML errorMessages = new HTML("Please chose a file!"); errorMessages.setStyleName("error-panel"); errorMessages.setVisible(false); panel.add(errorMessages); // Add a 'submit' button. ClickHandler cancelHandler = new ClickHandler() { @Override public void onClick(ClickEvent event) { window.hide(); } }; ClickHandler submitHandler = new ClickHandler() { @Override public void onClick(ClickEvent event) { errorMessages.setVisible(false); // verify form String filename = upload.getFilename(); if (tabs.getTabBar().getSelectedTab() == 1) { // unmanaged content if (unmanagedForm.validate().hasErrors()) { return; } else { wizard.onCreateUnmanaged(unmanagedForm.getUpdatedEntity()); } } else if (filename != null && !filename.equals("")) { loading = Feedback.loading( Console.CONSTANTS.common_label_plaseWait(), Console.CONSTANTS.common_label_requestProcessed(), new Feedback.LoadingCallback() { @Override public void onCancel() {} }); form.submit(); } else { errorMessages.setVisible(true); } } }; DialogueOptions options = new DialogueOptions( Console.CONSTANTS.common_label_next(), submitHandler, Console.CONSTANTS.common_label_cancel(), cancelHandler); // Add an event handler to the form. form.addSubmitCompleteHandler( new FormPanel.SubmitCompleteHandler() { @Override public void onSubmitComplete(FormPanel.SubmitCompleteEvent event) { getLoading().hide(); String html = event.getResults(); // Step 1: upload content, retrieve hash value try { String json = html; try { if (!GWT.isScript()) // TODO: Formpanel weirdness json = html.substring(html.indexOf(">") + 1, html.lastIndexOf("<")); } catch (StringIndexOutOfBoundsException e) { // if I get this exception it means I shouldn't strip out the html // this issue still needs more research Log.debug("Failed to strip out HTML. This should be preferred?"); } JSONObject response = JSONParser.parseLenient(json).isObject(); JSONObject result = response.get("result").isObject(); String hash = result.get("BYTES_VALUE").isString().stringValue(); // step2: assign name and group wizard.onUploadComplete(upload.getFilename(), hash); } catch (Exception e) { Log.error(Console.CONSTANTS.common_error_failedToDecode() + ": " + html, e); } // Option 2: Unmanaged content } }); String stepText = "<h3>" + Console.CONSTANTS.common_label_step() + "1/2: " + Console.CONSTANTS.common_label_deploymentSelection() + "</h3>"; layout.add(new HTML(stepText)); HTML description = new HTML(); description.setHTML(Console.CONSTANTS.common_label_chooseFile()); description.getElement().setAttribute("style", "padding-bottom:15px;"); layout.add(description); layout.add(form); tabs.add(layout, "Managed"); // Unmanaged form only for new deployments if (!wizard.isUpdate()) { VerticalPanel unmanagedPanel = new VerticalPanel(); unmanagedPanel.setStyleName("window-content"); String unmanagedText = "<h3>" + Console.CONSTANTS.common_label_step() + "1/1: Specify Deployment</h3>"; unmanagedPanel.add(new HTML(unmanagedText)); unmanagedForm = new Form<DeploymentRecord>(DeploymentRecord.class); TextAreaItem path = new TextAreaItem("path", "Path"); TextBoxItem relativeTo = new TextBoxItem("relativeTo", "Relative To", false); TextBoxItem name = new TextBoxItem("name", "Name"); TextBoxItem runtimeName = new TextBoxItem("runtimeName", "Runtime Name"); CheckBoxItem archive = new CheckBoxItem("archive", "Is Archive?"); archive.setValue(true); unmanagedForm.setFields(path, relativeTo, archive, name, runtimeName); unmanagedPanel.add(unmanagedForm.asWidget()); tabs.add(unmanagedPanel, "Unmanaged"); } tabs.selectTab(0); return new WindowContentBuilder(tabs, options).build(); }