Example usage for com.google.gwt.user.client.ui HorizontalPanel setVerticalAlignment

List of usage examples for com.google.gwt.user.client.ui HorizontalPanel setVerticalAlignment

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui HorizontalPanel setVerticalAlignment.

Prototype

public void setVerticalAlignment(VerticalAlignmentConstant align) 

Source Link

Document

Sets the default vertical alignment to be used for widgets added to this panel.

Usage

From source file:org.wannatrak.client.subject.SubjectSettingsWidget.java

License:Apache License

private HorizontalPanel createSendPeriodLabelPanel() {
    final PopupPanel sendPeriodInfo = new PopupPanel(true);
    sendPeriodInfo.setStylePrimaryName("sendPeriodInfo");
    sendPeriodInfo.setAnimationEnabled(true);

    final Label sendPeriodInfoCloseLabel = new Label(stringConstants.close());
    sendPeriodInfoCloseLabel.setStylePrimaryName("subjectInfoCloseLabel");
    sendPeriodInfoCloseLabel.addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
            sendPeriodInfo.hide();/*from   w ww  .j av  a2  s.co  m*/
        }
    });

    final Widget sendPeriodInfoWidget = new HTML(stringConstants.sendPeriodInfo());
    sendPeriodInfoWidget.setStylePrimaryName("sendPeriodInfoWidget");

    final VerticalPanel sendPeriodInfoContainer = new VerticalPanel();
    sendPeriodInfoContainer.setHorizontalAlignment(ALIGN_RIGHT);
    sendPeriodInfoContainer.add(sendPeriodInfoCloseLabel);
    sendPeriodInfoContainer.add(sendPeriodInfoWidget);

    sendPeriodInfo.setWidget(sendPeriodInfoContainer);

    final Label sendPeriodLabel = new Label(stringConstants.sendPeriod() + stringConstants.labelColon());
    sendPeriodLabel.setStylePrimaryName("subjectInfoInputLabel");
    final Label sendPeriodQues = new Label(stringConstants.ques());
    sendPeriodQues.setStylePrimaryName("subjectInfoQues");
    sendPeriodQues.addClickListener(new ClickListener() {
        public void onClick(Widget sender) {
            sendPeriodInfo.setPopupPosition(SubjectSettingsWidget.this.getAbsoluteLeft() - 30,
                    sendPeriodHoursListBox.getAbsoluteTop() + 30);
            sendPeriodInfo.show();
            sendPeriodQues.addStyleDependentName("clicked");
        }
    });

    final HorizontalPanel sendPeriodLabelPanel = new HorizontalPanel();
    sendPeriodLabelPanel.setVerticalAlignment(ALIGN_BOTTOM);
    sendPeriodLabelPanel.add(sendPeriodLabel);
    sendPeriodLabelPanel.add(sendPeriodQues);
    return sendPeriodLabelPanel;
}

From source file:org.waveprotocol.wave.client.editor.harness.EditorHarness.java

License:Apache License

public EditorHarness() {
    try {/* w  w w.  j  ava2 s . c  om*/
        // Start with queueing off
        queuingCheck.setValue(false);
        setPlayButtonState();

        // Construct log panel
        if (LogLevel.showDebug()) {
            log = new HTML();
            log.setStyleName("log");
            log.getElement().setId("log1");
            error = new HTML();
            error.getElement().setId("error1");
            error.setStyleName("redIndicator");
            fatal = new HTML();
            fatal.getElement().setId("fatal1");
            fatal.setStyleName("redIndicator");

            // Initialize listener that turns error indicator red when any error
            // messages are logged
            DomLogger.addLoggerListener(new LoggerListener() {
                @Override
                public void onError() {
                    showRedErrorIndicator();
                }

                @Override
                public void onFatal() {
                    showRedFatalIndicator();
                }

                @Override
                public void onNeedOutput() {
                }

                @Override
                public void onNewLogger(String loggerName) {
                }
            });
        }

        // Setup content and html display
        if (LogLevel.showDebug()) {
            prettyContent1 = new HTML();
            prettyContent1.addStyleName("content");
            prettyContent2 = new HTML();
            prettyContent2.addStyleName("content");
            prettyHtml1 = new HTML();
            prettyHtml1.addStyleName("html");
            prettyHtml2 = new HTML();
            prettyHtml2.addStyleName("html");
        }

        EditorWebDriverUtil.setDocumentSchema(getSchema());

        registerDoodads(testEditorRegistries);

        // The editors we are testing
        editor1 = createEditor("editor1");
        editorBundle1 = new EditorBundle(editor1, true);
        editor2 = createEditor("editor2");
        editorBundle2 = new EditorBundle(editor2, false);
        toggleEditCheck1 = createEditToggleCheckBox(editor1);
        toggleEditCheck2 = createEditToggleCheckBox(editor2);

        operationOutput.setStyleName("operation");

        final FlowPanel editMain = new FlowPanel();
        editMain.setStyleName("main");
        HorizontalPanel editors = new HorizontalPanel();
        FlowPanel editorStack1 = new FlowPanel();
        FlowPanel editorStack2 = new FlowPanel();

        editorStack1.add(editor1.getWidget());
        editorStack1.add(displayDoc1);
        editorStack1.add(toggleEditCheck1);
        editorStack1.add(disabledCheck);
        editorStack1.add(documentModeSelect);
        //      xx editorStack1.add(disabledCheck);
        if (LogLevel.showDebug()) {
            editorStack1.add(prettyContent1);
        }

        editorStack2.add(editor2.getWidget());
        editorStack2.add(toggleEditCheck2);
        editorStack2.add(diffCheck);
        editorStack2.add(createEditor2DocDetached);
        if (LogLevel.showDebug()) {
            editorStack2.add(prettyContent2);
        }

        editors.add(editorStack1);
        if (LogLevel.showDebug()) {
            editors.add(prettyHtml1);
        }
        editors.add(editorStack2);
        if (LogLevel.showDebug()) {
            editors.add(prettyHtml2);
        }

        HorizontalPanel operations = new HorizontalPanel();
        operations.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
        queuingCheck.addClickHandler(queuingCheckHandler);
        disabledCheck.addClickHandler(disabledCheckHandler);
        diffCheck.addClickHandler(diffCheckHandler);
        setPlayButtonState();
        operations.add(clearAnnotationsButton);
        operations.add(queuingCheck);
        operations.add(playButton);
        operations.add(new Label("Operation:"));
        operations.add(operationOutput);

        editMain.add(operations);
        editMain.add(editors);

        // Exactly one of these methods should be uncommented.
        //      initContentText();
        initContentOracle();

        widgetRow = new FlowPanel();

        widgetRow.add(clearEditorsButton);
        widgetRow.add(setContentButton);

        widgetRow.add(new InlineLabel("<body><line/>"));
        widgetRow.add(contentBox != null ? contentBox : contentSuggestBox);
        widgetRow.add(new InlineLabel("</body>"));

        Button clearContentBoxButton = new Button("Clear text", new ClickHandler() {
            public void onClick(ClickEvent e) {
                if (contentBox != null) {
                    contentBox.setValue("");
                } else {
                    contentSuggestBox.setValue("");
                }
            }
        });
        clearContentBoxButton.getElement().setId("clear-content-box");
        widgetRow.add(clearContentBoxButton);
        // Hide it, only really used for webdriver tests
        clearContentBoxButton.setVisible(false);

        if (LogLevel.showDebug()) {
            widgetRow.add(new FlowPanel());
            widgetRow.add(clearLogButton);
            widgetRow.add(quietButton);
            widgetRow.add(loudButton);
        }

        editMain.add(widgetRow);

        if (LogLevel.showDebug()) {
            editMain.add(error);
            editMain.add(fatal);
            editMain.add(log);
            // We need our own uncaught exception hander to make sure the error shout happens
            GWT.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {
                public void onUncaughtException(Throwable e) {
                    logUncaughtExceptions(e);
                }
            });
        } else {
            HTML spacer = new HTML();
            editMain.add(spacer);
        }

        initWidget(editMain);

        // Enable logging (important to do this after main is attached
        // such that exceptions occurring before this can be handled by
        // GWT's Default handler...)
        if (LogLevel.showDebug()) {
            DomLogger.enable(log.getElement());
            lottaLogging();
        }

        KeyBindingRegistry keysRegistry = new KeyBindingRegistry();
        extendKeyBindings(keysRegistry);

        // Start editing
        editor1.init(testEditorRegistries, keysRegistry, EditorSettings.DEFAULT);
        editor2.init(testEditorRegistries, keysRegistry, EditorSettings.DEFAULT);
        editor1.addUpdateListener(new EditorUpdateListener() {
            @Override
            public void onUpdate(EditorUpdateEvent event) {
                outputBothEditorStates();
            }

        });

        editor1.setOutputSink(editor1Sink);
        editor2.setOutputSink(editor2Sink);
        clearEditors();
        editor1.setEditing(true);
        editor2.setEditing(false);
        toggleEditCheck2.setValue(false);
        toggleEditCheck1.setValue(true);

        // Output initial state
        outputBothEditorStates();
        outputOperation(null);

    } catch (RuntimeException r) {
        // Do we need this at all?

        UncaughtExceptionHandler handler = GWT.getUncaughtExceptionHandler();
        if (handler != null) {
            handler.onUncaughtException(r);
        } else {
            logger.error().log(r);
        }
        throw r;
    }
}

From source file:org.wisepersist.gwt.uploader.demo.client.ImageButtonAndProgressBar.java

License:Apache License

@Override
public Widget getUploaderPanel() {
    final HorizontalPanel horizontalPanel = new HorizontalPanel();

    uploader.setUploadURL("/upload").setButtonImageURL(AppResources.INSTANCE.upload().getSafeUri().asString())
            .setButtonWidth(133).setButtonHeight(22).setFileSizeLimit("50 MB")
            .setButtonCursor(Uploader.Cursor.HAND).setButtonAction(Uploader.ButtonAction.SELECT_FILE)
            .setFileQueuedHandler(new FileQueuedHandler() {
                public boolean onFileQueued(final FileQueuedEvent fileQueuedEvent) {
                    // Create a Progress Bar for this file
                    progressBar.setTitle(fileQueuedEvent.getFile().getName());
                    progressBar.setHeight("18px");
                    progressBar.setWidth("200px");

                    // Add Cancel Button Image
                    cancelButton.setStyleName("cancelButton");
                    cancelButton.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            uploader.cancelUpload(fileQueuedEvent.getFile().getId(), false);
                            progressBar.setProgress(-1.0d);
                            cancelButton.removeFromParent();
                        }//  w w  w . j av a2 s  .c om
                    });

                    horizontalPanel.add(progressBar);
                    horizontalPanel.add(cancelButton);

                    return true;
                }
            }).setFileDialogStartHandler(new FileDialogStartHandler() {
                public boolean onFileDialogStartEvent(FileDialogStartEvent fileDialogStartEvent) {
                    if (uploader.getStats().getUploadsInProgress() <= 0) {
                        progressBar.removeFromParent();
                        cancelButton.removeFromParent();
                    }
                    return true;
                }
            }).setUploadProgressHandler(new UploadProgressHandler() {
                public boolean onUploadProgress(UploadProgressEvent uploadProgressEvent) {
                    progressBar.setProgress((double) uploadProgressEvent.getBytesComplete()
                            / uploadProgressEvent.getBytesTotal());
                    return true;
                }
            }).setUploadSuccessHandler(new UploadSuccessHandler() {
                public boolean onUploadSuccess(UploadSuccessEvent uploadSuccessEvent) {
                    cancelButton.removeFromParent();
                    return true;
                }
            }).setFileDialogCompleteHandler(new FileDialogCompleteHandler() {
                public boolean onFileDialogComplete(FileDialogCompleteEvent fileDialogCompleteEvent) {
                    if (fileDialogCompleteEvent.getTotalFilesInQueue() > 0
                            && uploader.getStats().getUploadsInProgress() <= 0) {
                        progressBar.setProgress(0.0);
                        uploader.startUpload();
                    }
                    return true;
                }
            }).setFileQueueErrorHandler(new FileQueueErrorHandler() {
                public boolean onFileQueueError(FileQueueErrorEvent fileQueueErrorEvent) {
                    progressBar.setProgress(0.0);
                    cancelButton.removeFromParent();
                    Window.alert("Upload of file " + fileQueueErrorEvent.getFile().getName()
                            + " failed due to [" + fileQueueErrorEvent.getErrorCode().toString() + "]: "
                            + fileQueueErrorEvent.getMessage());
                    return true;
                }
            }).setUploadErrorHandler(new UploadErrorHandler() {
                public boolean onUploadError(UploadErrorEvent uploadErrorEvent) {
                    progressBar.setProgress(0.0);
                    cancelButton.removeFromParent();
                    Window.alert("Upload of file " + uploadErrorEvent.getFile().getName() + " failed due to ["
                            + uploadErrorEvent.getErrorCode().toString() + "]: "
                            + uploadErrorEvent.getMessage());
                    return true;
                }
            });

    horizontalPanel.add(uploader);
    horizontalPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
    horizontalPanel.setCellHorizontalAlignment(uploader, HorizontalPanel.ALIGN_RIGHT);
    return horizontalPanel;
}

From source file:org.wisepersist.gwt.uploader.demo.client.MultiUploadWithProgressBar.java

License:Apache License

@Override
public Widget getUploaderPanel() {
    final VerticalPanel progressBarPanel = new VerticalPanel();
    final Map<String, ProgressBar> progressBars = new LinkedHashMap<String, ProgressBar>();
    final Map<String, Image> cancelButtons = new LinkedHashMap<String, Image>();
    uploader.setUploadURL("/upload").setButtonImageURL(AppResources.INSTANCE.upload().getSafeUri().asString())
            .setButtonWidth(133).setButtonHeight(22).setFileSizeLimit("50 MB")
            .setButtonCursor(Uploader.Cursor.HAND).setButtonAction(Uploader.ButtonAction.SELECT_FILES)
            .setFileQueuedHandler(new FileQueuedHandler() {
                public boolean onFileQueued(final FileQueuedEvent fileQueuedEvent) {
                    // Create a Progress Bar for this file
                    final ProgressBar progressBar = new ProgressBar(0.0, 1.0, 0.0,
                            new CancelProgressBarTextFormatter());
                    progressBar.setTitle(fileQueuedEvent.getFile().getName());
                    progressBar.setHeight("18px");
                    progressBar.setWidth("200px");
                    progressBars.put(fileQueuedEvent.getFile().getId(), progressBar);

                    // Add Cancel Button Image
                    final Image cancelButton = new Image(
                            AppResources.INSTANCE.cancel().getSafeUri().asString());
                    cancelButton.setStyleName("cancelButton");
                    cancelButton.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            uploader.cancelUpload(fileQueuedEvent.getFile().getId(), false);
                            progressBars.get(fileQueuedEvent.getFile().getId()).setProgress(-1.0d);
                            cancelButton.removeFromParent();
                        }/*from  w  w  w  .j ava2  s  .  c o m*/
                    });
                    cancelButtons.put(fileQueuedEvent.getFile().getId(), cancelButton);

                    // Add the Bar and Button to the interface
                    HorizontalPanel progressBarAndButtonPanel = new HorizontalPanel();
                    progressBarAndButtonPanel.add(progressBar);
                    progressBarAndButtonPanel.add(cancelButton);
                    progressBarPanel.add(progressBarAndButtonPanel);

                    return true;
                }
            }).setUploadProgressHandler(new UploadProgressHandler() {
                public boolean onUploadProgress(UploadProgressEvent uploadProgressEvent) {
                    ProgressBar progressBar = progressBars.get(uploadProgressEvent.getFile().getId());
                    progressBar.setProgress((double) uploadProgressEvent.getBytesComplete()
                            / uploadProgressEvent.getBytesTotal());
                    return true;
                }
            }).setUploadCompleteHandler(new UploadCompleteHandler() {
                public boolean onUploadComplete(UploadCompleteEvent uploadCompleteEvent) {
                    cancelButtons.get(uploadCompleteEvent.getFile().getId()).removeFromParent();
                    // Call upload to see if any additional files are queued
                    uploader.startUpload();
                    return true;
                }
            }).setFileDialogStartHandler(new FileDialogStartHandler() {
                public boolean onFileDialogStartEvent(FileDialogStartEvent fileDialogStartEvent) {
                    if (uploader.getStats().getUploadsInProgress() <= 0) {
                        // Clear the uploads that have completed, if none are in process
                        progressBarPanel.clear();
                        progressBars.clear();
                        cancelButtons.clear();
                    }
                    return true;
                }
            }).setFileDialogCompleteHandler(new FileDialogCompleteHandler() {
                public boolean onFileDialogComplete(FileDialogCompleteEvent fileDialogCompleteEvent) {
                    if (uploader.getStats().getUploadsInProgress() <= 0) {
                        uploader.startUpload();
                    }
                    return true;
                }
            }).setFileQueueErrorHandler(new FileQueueErrorHandler() {
                public boolean onFileQueueError(FileQueueErrorEvent fileQueueErrorEvent) {
                    Window.alert("Upload of file " + fileQueueErrorEvent.getFile().getName()
                            + " failed due to [" + fileQueueErrorEvent.getErrorCode().toString() + "]: "
                            + fileQueueErrorEvent.getMessage());
                    return true;
                }
            }).setUploadErrorHandler(new UploadErrorHandler() {
                public boolean onUploadError(UploadErrorEvent uploadErrorEvent) {
                    cancelButtons.get(uploadErrorEvent.getFile().getId()).removeFromParent();
                    Window.alert("Upload of file " + uploadErrorEvent.getFile().getName() + " failed due to ["
                            + uploadErrorEvent.getErrorCode().toString() + "]: "
                            + uploadErrorEvent.getMessage());
                    return true;
                }
            });
    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.add(uploader);
    horizontalPanel.add(progressBarPanel);
    horizontalPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
    horizontalPanel.setCellHorizontalAlignment(uploader, HorizontalPanel.ALIGN_LEFT);
    horizontalPanel.setCellHorizontalAlignment(progressBarPanel, HorizontalPanel.ALIGN_RIGHT);
    return horizontalPanel;
}

From source file:org.wisepersist.gwt.uploader.demo.client.MultiUploadWithProgressBarAndDragAndDrop.java

License:Apache License

@Override
public Widget getUploaderPanel() {
    final VerticalPanel progressBarPanel = new VerticalPanel();
    final Map<String, ProgressBar> progressBars = new LinkedHashMap<String, ProgressBar>();
    final Map<String, Image> cancelButtons = new LinkedHashMap<String, Image>();
    uploader.setUploadURL("/upload").setButtonImageURL(AppResources.INSTANCE.upload().getSafeUri().asString())
            .setButtonWidth(133).setButtonHeight(22).setFileSizeLimit("50 MB")
            .setButtonCursor(Uploader.Cursor.HAND).setButtonAction(Uploader.ButtonAction.SELECT_FILES)
            .setFileQueuedHandler(new FileQueuedHandler() {
                public boolean onFileQueued(final FileQueuedEvent fileQueuedEvent) {
                    // Create a Progress Bar for this file
                    final ProgressBar progressBar = new ProgressBar(0.0, 1.0, 0.0,
                            new CancelProgressBarTextFormatter());
                    progressBar.setTitle(fileQueuedEvent.getFile().getName());
                    progressBar.setHeight("18px");
                    progressBar.setWidth("200px");
                    progressBars.put(fileQueuedEvent.getFile().getId(), progressBar);

                    // Add Cancel Button Image
                    final Image cancelButton = new Image(
                            AppResources.INSTANCE.cancel().getSafeUri().asString());
                    cancelButton.setStyleName("cancelButton");
                    cancelButton.addClickHandler(new ClickHandler() {
                        public void onClick(ClickEvent event) {
                            uploader.cancelUpload(fileQueuedEvent.getFile().getId(), false);
                            progressBars.get(fileQueuedEvent.getFile().getId()).setProgress(-1.0d);
                            cancelButton.removeFromParent();
                        }//from   ww w  .  j  a  v  a 2s  . c o m
                    });
                    cancelButtons.put(fileQueuedEvent.getFile().getId(), cancelButton);

                    // Add the Bar and Button to the interface
                    HorizontalPanel progressBarAndButtonPanel = new HorizontalPanel();
                    progressBarAndButtonPanel.add(progressBar);
                    progressBarAndButtonPanel.add(cancelButton);
                    progressBarPanel.add(progressBarAndButtonPanel);

                    return true;
                }
            }).setUploadProgressHandler(new UploadProgressHandler() {
                public boolean onUploadProgress(UploadProgressEvent uploadProgressEvent) {
                    ProgressBar progressBar = progressBars.get(uploadProgressEvent.getFile().getId());
                    progressBar.setProgress((double) uploadProgressEvent.getBytesComplete()
                            / uploadProgressEvent.getBytesTotal());
                    return true;
                }
            }).setUploadCompleteHandler(new UploadCompleteHandler() {
                public boolean onUploadComplete(UploadCompleteEvent uploadCompleteEvent) {
                    cancelButtons.get(uploadCompleteEvent.getFile().getId()).removeFromParent();
                    uploader.startUpload();
                    return true;
                }
            }).setFileDialogStartHandler(new FileDialogStartHandler() {
                public boolean onFileDialogStartEvent(FileDialogStartEvent fileDialogStartEvent) {
                    if (uploader.getStats().getUploadsInProgress() <= 0) {
                        // Clear the uploads that have completed, if none are in process
                        progressBarPanel.clear();
                        progressBars.clear();
                        cancelButtons.clear();
                    }
                    return true;
                }
            }).setFileDialogCompleteHandler(new FileDialogCompleteHandler() {
                public boolean onFileDialogComplete(FileDialogCompleteEvent fileDialogCompleteEvent) {
                    if (fileDialogCompleteEvent.getTotalFilesInQueue() > 0) {
                        if (uploader.getStats().getUploadsInProgress() <= 0) {
                            uploader.startUpload();
                        }
                    }
                    return true;
                }
            }).setFileQueueErrorHandler(new FileQueueErrorHandler() {
                public boolean onFileQueueError(FileQueueErrorEvent fileQueueErrorEvent) {
                    Window.alert("Upload of file " + fileQueueErrorEvent.getFile().getName()
                            + " failed due to [" + fileQueueErrorEvent.getErrorCode().toString() + "]: "
                            + fileQueueErrorEvent.getMessage());
                    return true;
                }
            }).setUploadErrorHandler(new UploadErrorHandler() {
                public boolean onUploadError(UploadErrorEvent uploadErrorEvent) {
                    cancelButtons.get(uploadErrorEvent.getFile().getId()).removeFromParent();
                    Window.alert("Upload of file " + uploadErrorEvent.getFile().getName() + " failed due to ["
                            + uploadErrorEvent.getErrorCode().toString() + "]: "
                            + uploadErrorEvent.getMessage());
                    return true;
                }
            });

    VerticalPanel verticalPanel = new VerticalPanel();
    verticalPanel.add(uploader);

    if (Uploader.isAjaxUploadWithProgressEventsSupported()) {
        final Label dropFilesLabel = new Label("Drop Files Here");
        dropFilesLabel.setStyleName("dropFilesLabel");
        dropFilesLabel.addDragOverHandler(new DragOverHandler() {
            public void onDragOver(DragOverEvent event) {
                if (!uploader.getButtonDisabled()) {
                    dropFilesLabel.addStyleName("dropFilesLabelHover");
                }
            }
        });
        dropFilesLabel.addDragLeaveHandler(new DragLeaveHandler() {
            public void onDragLeave(DragLeaveEvent event) {
                dropFilesLabel.removeStyleName("dropFilesLabelHover");
            }
        });
        dropFilesLabel.addDropHandler(new DropHandler() {
            public void onDrop(DropEvent event) {
                dropFilesLabel.removeStyleName("dropFilesLabelHover");

                if (uploader.getStats().getUploadsInProgress() <= 0) {
                    progressBarPanel.clear();
                    progressBars.clear();
                    cancelButtons.clear();
                }

                uploader.addFilesToQueue(Uploader.getDroppedFiles(event.getNativeEvent()));
                event.preventDefault();
            }
        });
        verticalPanel.add(dropFilesLabel);
    }

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.add(verticalPanel);
    horizontalPanel.add(progressBarPanel);
    horizontalPanel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
    horizontalPanel.setCellHorizontalAlignment(uploader, HorizontalPanel.ALIGN_LEFT);
    horizontalPanel.setCellHorizontalAlignment(progressBarPanel, HorizontalPanel.ALIGN_RIGHT);
    return horizontalPanel;
}

From source file:org.wyona.security.gwt.accesspolicyeditor.client.AccessPolicyEditor.java

License:Apache License

/**
 * Execute at the very beginning/*from  w w  w  .  j av a 2 s .  c om*/
 */
public void onModuleLoad() {
    String language = "en"; // DEFAULT

    String groupURL = "DEFAULT-group.xml";
    String identitiesURL = "DEFAULT-identities-and-usecases.xml";
    String readPolicyURL = "DEFAULT-policy.xml";
    boolean cancelURLBaseEqualsHostPageURL = false;
    String cancelURL = "DEFAULT-cancel.html";
    String savePolicyURL = "DEFAULT-save-policy.xml";
    String i18nURL = "DEFAULT-i18n.xml";
    // Get URLs from host/html page
    try {
        Dictionary dict = Dictionary.getDictionary("getURLs");
        language = dict.get("language");
        groupURL = GWT.getHostPageBaseURL() + dict.get("group-url").replace("&amp;", "&"); // INFO: The property 'group-url' is set by src/java/org/wyona/yanel/impl/resources/policymanager/PolicyManagerResource.java
        identitiesURL = dict.get("identities-url");
        readPolicyURL = dict.get("policy-url");
        cancelURL = dict.get("cancel-url").replace("&amp;", "&");
        cancelURLBaseEqualsHostPageURL = new Boolean(dict.get("cancel-url-base-equals-host-page-url"))
                .booleanValue();
        savePolicyURL = dict.get("save-url");

        // TODO: Read this URL and use data instead from hardcoded I18n class
        i18nURL = dict.get("i18n-url");
    } catch (java.util.MissingResourceException e) {
        Window.alert("Exception: " + e.getMessage());
    }

    // Get identities/groups and available rights from server
    identitiesLBW = new IdentitiesListBoxWidget(visibleItemCount, language);
    getIdentitiesAndRights(identitiesURL);

    // Get policy from server (within getPolicy() the identities list will be updated accordingly)
    policyLBW = new PolicyListBoxWidget(visibleItemCount, policyUsers, policyGroups, useInheritedPolicies,
            language);
    getPolicy(readPolicyURL);

    // Setup GUI
    VerticalPanel vp = new VerticalPanel();
    vp.setStyleName("gwt-wyona-main-vp");
    vp.setSpacing(15);
    RootPanel.get("access-policy-editor-hook").add(vp);

    HorizontalPanel searchFilterPanel = new HorizontalPanel();
    searchFilterPanel.setStyleName("gwt-wyona-search-hp");
    vp.add(searchFilterPanel);

    searchFilterPanel.add(new Label(I18n.getLabel("search-box-label", language)));

    final TextBox searchTB = new TextBox();
    searchTB.setVisibleLength(30);
    searchFilterPanel.add(searchTB);

    // Search functionality
    searchTB.addKeyboardListener(new KeyboardListenerAdapter() {
        public void onKeyUp(Widget sender, char keyCode, int modifiers) {
            identitiesLBW.listBySearchMatch(searchTB.getText());
        }
    });

    /* TODO: Is this still needed?!
            Button searchButton = new Button("Search User or Group", new ClickListener() {
    public void onClick(Widget sender) {
        int itemCount = identitiesLBW.getListBox().getItemCount();
        for (int i = 0; i < itemCount; i++) {
            String itemText = identitiesLBW.getListBox().getItemText(i);
            if (itemText.indexOf(searchTB.getText()) >= 0) Window.alert("Result: " + itemText);
                    
        }
    }
              
            });
            searchFilterPanel.add(searchButton);
    */

    HorizontalPanel hp = new HorizontalPanel();
    vp.add(hp);

    HorizontalPanel buttonHP = new HorizontalPanel();
    buttonHP.setSpacing(5);
    vp.add(buttonHP);
    //buttonHP.add(new Button("Apply Policy"));

    // Save Button
    final String savePolicyUrl = GWT.getHostPageBaseURL() + savePolicyURL.replaceAll("&amp;", "&");
    //saveButton = new Button("Save Policy and Exit", new ClickListener() {
    saveButton = new Button("Save/Apply Policy", new ClickListener() {
        public void onClick(Widget sender) {
            final AsynchronousPolicySetter aps = new AsynchronousPolicySetter(savePolicyUrl);
            try {
                com.google.gwt.http.client.Request request = aps.sendRequest(policyLBW.getItems(),
                        policyLBW.getUseInheritedPolicies());
                // TODO: Disable button during save (start a timer in order to enable when response has been received)
                //saveButton.setEnabled(false);
            } catch (Exception e) {
                Window.alert("Exception: " + e.getMessage());
            }
        }
    });
    saveButton.addStyleName("gwt-wyona-SaveButton");
    buttonHP.add(saveButton);

    // Cancel Button
    final String cancelUrl = cancelURL;
    final boolean cancelURLBaseEqualsHostPageURLFinal = cancelURLBaseEqualsHostPageURL;
    Button cancelButton = new Button("Cancel/Close", new ClickListener() {
        public void onClick(Widget sender) {
            //Window.alert("Redirect to " + cancelUrl);
            if (cancelURLBaseEqualsHostPageURLFinal) {
                redirectTo(GWT.getHostPageBaseURL() + cancelUrl);
            } else {
                redirectTo(cancelUrl);
            }
        }

        public native void redirectTo(String url) /*-{
                                                  $wnd.location.href=url;
                                                  }-*/;
    });
    cancelButton.addStyleName("gwt-wyona-CancelButton");
    buttonHP.add(cancelButton);

    vp.add(new Label("Wyona Access Control Policy (GWT) Editor version 1.1.0"));

    AddRemoveIdentitiesWidget ariw = new AddRemoveIdentitiesWidget(identitiesLBW, policyLBW.getListBox(),
            policyLBW, groupURL, language);
    ariw.setStyleName("gwt-wyona-AddRemoveWidget");

    CutPasteListOrderWidget cutPasteWidget = new CutPasteListOrderWidget(policyLBW);
    cutPasteWidget.setStyleName("gwt-wyona-CutPasteListOrderWidget");

    hp.add(getFilterUsersAndGroupsButtonsWidget(language));
    hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP);
    hp.add(identitiesLBW);
    hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    hp.add(ariw);
    hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_TOP);
    hp.add(policyLBW);
    hp.add(cutPasteWidget);
}

From source file:se.esss.litterbox.linaclego.webapp.client.panels.PbsLevelPanel.java

License:Open Source License

private VerticalPanel setupElementPanel() {
    HorizontalPanel expandButtonPanel = new HorizontalPanel();
    HorizontalPanel collapseButtonPanel = new HorizontalPanel();
    expandButtonPanel.add(expandButton);
    collapseButtonPanel.add(collapseButton);

    arrowLine1Image = new Image("images/blueLine.png");
    arrowLine1Image.setHeight(arrowHeight + "px");
    arrowLine1Image.setWidth(arrowLine1Width + "px");
    arrowLine1Panel = new HorizontalPanel();
    arrowLine1Panel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    arrowLine1Panel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    arrowLine1Panel.setWidth(arrowLine1Width + "px");
    arrowLine1Panel.setHeight("100%");
    arrowLine1Panel.add(arrowLine1Image);

    Image arrowLine2Image = new Image("images/blueLine.png");
    arrowLine2Image.setHeight(arrowHeight + "px");
    arrowLine2Image.setWidth("100%");
    arrowLine2Panel = new HorizontalPanel();
    arrowLine2Panel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    arrowLine2Panel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    arrowLine2Panel.setWidth("100%");
    arrowLine2Panel.setHeight("100%");
    arrowLine2Panel.add(arrowLine2Image);

    iconImage = new Image(textTree.getIconImageLocation());
    iconImage.addClickHandler(new IconImageClickHandler(this));
    iconImage.setSize(iconWidth + "px", iconHeight + "px");
    Image arrowHeadImage = new Image("images/blueArrowHead.png");
    arrowHeadImage.setSize(arrowHeight + "px", arrowHeight + "px");

    HorizontalPanel iconAndArrowHeadPanel = new HorizontalPanel();
    iconAndArrowHeadPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LEFT);
    iconAndArrowHeadPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    iconAndArrowHeadPanel.setWidth(iconWidth + arrowHeight + "px");
    iconAndArrowHeadPanel.add(arrowHeadImage);
    iconAndArrowHeadPanel.add(iconImage);

    HorizontalPanel allIconPanel = new HorizontalPanel();
    allIconPanel.setWidth("100%");
    allIconPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_LOCALE_START);
    allIconPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    allIconPanel.add(arrowLine1Panel);
    allIconPanel.add(iconAndArrowHeadPanel);
    allIconPanel.add(arrowLine2Panel);

    HorizontalPanel tagAndButtonPanel = new HorizontalPanel();
    tagAndButtonPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    tagAndButtonPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    tagAndButtonPanel.add(expandButtonPanel);
    tagAndButtonPanel.add(new InlineHTML("<html>" + textTree.getAttribute(0).getAttributeValue() + "</html>"));
    //      tagAndButtonPanel.add(new InlineHTML("<html>" + textTree.getTag() + "</html>"));
    tagAndButtonPanel.add(collapseButtonPanel);
    tagAndButtonWrapperPanel = new HorizontalPanel();
    tagAndButtonWrapperPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    tagAndButtonWrapperPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    tagAndButtonWrapperPanel.setWidth("100%");
    tagAndButtonWrapperPanel.setHeight("40px");
    tagAndButtonWrapperPanel.add(tagAndButtonPanel);
    if (odd)//from   w w w .  j a v a 2s . c om
        tagAndButtonWrapperPanel.setStyleName("pbsBackGroundOdd" + ilevel);
    if (!odd)
        tagAndButtonWrapperPanel.setStyleName("pbsBackGroundEven" + ilevel);
    FocusPanel tagAndButtonWrapperFocusPanel = new FocusPanel();
    tagAndButtonWrapperFocusPanel.addClickHandler(new CenterClickHandler(this));
    tagAndButtonWrapperFocusPanel.add(tagAndButtonWrapperPanel);

    VerticalPanel iconAndTag = new VerticalPanel();
    iconAndTag.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    iconAndTag.setWidth("100%");
    iconAndTag.add(tagAndButtonWrapperFocusPanel);
    iconAndTag.add(allIconPanel);

    VerticalPanel wrapperPanel = new VerticalPanel();
    wrapperPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    wrapperPanel.add(iconAndTag);
    if (textTree.hasChildren()) {
        expandButton.addClickHandler(new ExpandButtonClickHandler(this));
        expandButton.setVisible(true);
        collapseButton.addClickHandler(new CollapseButtonClickHandler(this));
        collapseButton.setVisible(false);
    } else {
        expandButton.setVisible(false);
        collapseButton.setVisible(false);
    }
    Grid attributePanel = new Grid(textTree.numAttributes(), 1);
    for (int ia = 0; ia < textTree.numAttributes(); ++ia) {
        attributePanel.setWidget(ia, 0,
                new InlineHTML(textTree.getAttribute(ia).getInlineHtmlString(false, false)));
    }

    Grid idPanel = new Grid(1, 1);
    idPanel.setWidget(0, 0, new Label(" "));
    wrapperPanel.add(idPanel);
    if (textTree.hasDataFolder()) {
        dataPanel = new Grid(textTree.getDataFolder().numChildren(), 1);
        for (int ia = 0; ia < textTree.getDataFolder().numChildren(); ++ia) {
            String html = textTree.getDataFolder().getTextTreeArrayList().get(ia).getInlineHtmlString(false,
                    false);
            dataPanel.setWidget(ia, 0, new InlineHTML(html));
        }
    }
    pbsInfoDialogBox = new PbsInfoDialogBox(textTree.getAttribute(1).getAttributeValue(), attributePanel,
            dataPanel);
    return wrapperPanel;
}

From source file:sk.seges.acris.widget.client.table.PagingOptions.java

License:Apache License

/**
 * Constructor.//  ww w.  j  a v  a  2s  . c  om
 * 
 * @param table
 *            the table being affected
 * @param resources
 *            the images to use
 */
public PagingOptions(PagingScrollTable<?> table, PagingOptionsResources resources, boolean pageCountAvailable) {
    this.table = table;
    this.resources = resources;
    Css css = resources.getStyle().css();
    //      if (Gen2CssInjector.isInjectionEnabled()) {
    //         Gen2CssInjector.inject(css);
    //      }

    // Create the main widget
    HorizontalPanel pagingPanel = new HorizontalPanel();
    initWidget(pagingPanel);
    pagingPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    pagingPanel.setWidth("100%");
    setStyleName(resources.getStyle().css().defaultStyleName());

    // Create the paging image buttons
    createPageButtons();

    if (pageCountAvailable) {
        // Create the current page box
        createCurrentPageBox();

        pageSlider.setStepSize(1.0);
        //         pageSlider.addStyleName("acris-PagingOptions-pageSlider");
        pageSlider.setWidth("120px");
        pageSlider.setMaxValue(getPageCount());
        pageSlider.addValueChangeHandler(new ValueChangeHandler<Double>() {
            private Timer timer;

            @Override
            public void onValueChange(ValueChangeEvent<Double> event) {
                final int currentPage = (int) pageSlider.getCurrentValue();
                pageSlider.setTitle(
                        PagingOptions.this.resources.getMessages().currentOfPages(currentPage, getPageCount()));
                if (timer != null) {
                    timer.cancel();
                }
                timer = new Timer() {
                    public void run() {
                        PagingOptions.this.table.gotoPage(currentPage - 1, false);
                    }
                };
                timer.schedule(250);
            }
        });
    }
    // Create the loading image
    loadingImage = new Image("acris-images/scrollTableLoading.gif");
    loadingImage.setVisible(false);

    // Create the error label
    errorLabel = new HTML();
    errorLabel.setStylePrimaryName("errorMessage");

    buttonPanel = new HorizontalPanel();
    buttonPanel.setSpacing(3);
    buttonPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    buttonPanel.add(firstPageButton);
    buttonPanel.add(previousPageButton);
    currentPageBox.addStyleName("acris-bean-table-currentPageBox");
    if (pageCountAvailable) {
        buttonPanel.add(pageSlider);
        buttonPanel.add(currentPageBox);
    }
    buttonPanel.add(nextPageButton);
    if (pageCountAvailable) {
        buttonPanel.add(lastPageButton);
    }
    buttonPanel.add(loadingImage);
    pagingPanel.add(buttonPanel);
    // Add the widgets to the panel
    pagingPanel.add(errorLabel);

    // Add handlers to the table
    table.addPageLoadHandler(new PageLoadHandler() {
        public void onPageLoad(PageLoadEvent event) {
            loadingImage.setVisible(false);
            errorLabel.setHTML("");
            updateButtonState();
        }
    });
    table.addPageChangeHandler(new PageChangeHandler() {
        public void onPageChange(PageChangeEvent event) {
            currentPageBox.setText((event.getNewPage() + 1) + "");
            loadingImage.setVisible(true);
            errorLabel.setHTML("");
        }
    });
    table.addPagingFailureHandler(new PagingFailureHandler() {
        public void onPagingFailure(PagingFailureEvent event) {
            loadingImage.setVisible(false);
            errorLabel.setHTML(event.getException().getMessage());
        }
    });
    table.addPageCountChangeHandler(new PageCountChangeHandler() {
        public void onPageCountChange(PageCountChangeEvent event) {
            setPageCount(event.getNewPageCount());
            updateButtonState();
        }
    });
    setPageCount(table.getPageCount());
}

From source file:stroom.widget.xsdbrowser.client.view.XSDDisplayBoxTitle.java

License:Apache License

public XSDDisplayBoxTitle(final ImageResource image, final String title, final XSDModel model,
        final XSDNode node) {
    imgImage = AbstractImagePrototype.create(image).createImage();
    lblTitle = new Label(title, false);
    lblTitle.getElement().setAttribute("unselectable", "on");
    lblTitle.getElement().getStyle().setColor("white");

    final HorizontalPanel hp = new HorizontalPanel();
    hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    hp.add(imgImage);/*  www.  ja v  a2  s  .  c o  m*/
    hp.add(lblTitle);

    imgImage.addStyleName("marginRight");

    layout = new ClickPanel();
    layout.add(hp);

    if (node != null) {
        setSelectable(true);
        layout.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(final ClickEvent event) {
                final boolean doubleClick = doubleClickTest.test(node);
                model.setSelectedItem(node, doubleClick);
            }
        });
        layout.addDoubleClickHandler(new DoubleClickHandler() {
            @Override
            public void onDoubleClick(final DoubleClickEvent event) {
                model.setSelectedItem(node, true);
            }
        });
    }

    initWidget(layout);
}

From source file:tv.dyndns.kishibe.qmaclone.client.creation.WidgetProblemForm.java

License:Open Source License

public WidgetProblemForm(CreationUi creationUi) {
    this.creationUi = creationUi;

    // ??/*www  . j  av  a 2 s .c  om*/
    add(labelProblemNumber);

    Grid grid = new Grid(15, 2);
    grid.addStyleName("gridFrame");
    grid.addStyleName("gridFontNormal");

    int row = 0;

    // 
    for (ProblemGenre genre : ProblemGenre.values()) {
        String name = genre == ProblemGenre.Random ? "???????" : genre.toString();
        listBoxGenre.addItem(name, Integer.toString(genre.getIndex()));
    }
    listBoxGenre.setWidth("200px");
    grid.setText(row, 0, "");
    grid.setWidget(row++, 1, listBoxGenre);

    // ?
    for (ProblemType type : ProblemType.values()) {
        if (ProblemType.Random1.compareTo(type) <= 0) {
            break;
        }
        String item = type == ProblemType.Random ? "????????" : type.toString();
        listBoxType.addItem(item, type.name());
    }
    listBoxType.setWidth("200px");
    listBoxType.addChangeHandler(this);
    grid.setText(row, 0, "?");
    grid.setWidget(row++, 1, listBoxType);

    // 
    for (int i = 1; i <= 5; ++i) {
        String s = Integer.toString(i);
        listBoxRandomFlag.addItem(s, RandomFlag.values()[i].name());
    }
    listBoxRandomFlag.setSelectedIndex(4);
    listBoxRandomFlag.setWidth("100px");
    grid.setText(row, 0, "");
    grid.setWidget(row++, 1, listBoxRandomFlag);

    // ?
    textAreaSentence.setCharacterWidth(60);
    textAreaSentence.setVisibleLines(5);
    grid.setText(row, 0, "?");
    grid.setWidget(row++, 1, textAreaSentence);

    // ?
    VerticalPanel choicePanel = new VerticalPanel();
    choicePanel.setStyleName("gridNoFrame");
    choicePanel.addStyleName("gridFontNormal");
    for (int i = 0; i < MAX_NUMBER_OF_CHOICES; ++i) {
        textBoxChoice[i] = new TextBox();
        textBoxChoice[i].setWidth("400px");
        choicePanel.add(textBoxChoice[i]);
    }
    choicePanel.add(checkBoxImageChoice);
    grid.setText(row, 0, "?");
    grid.setWidget(row++, 1, choicePanel);

    // 
    VerticalPanel answerPanel = new VerticalPanel();
    answerPanel.setStyleName("gridNoFrame");
    answerPanel.addStyleName("gridFontNormal");
    for (int i = 0; i < MAX_NUMBER_OF_ANSWERS; ++i) {
        HorizontalPanel panel = new HorizontalPanel();
        panel.setVerticalAlignment(ALIGN_MIDDLE);
        answerPanel.add(panel);

        textBoxAnswer[i] = new TextBox();
        textBoxAnswer[i].setWidth("400px");
        panel.add(textBoxAnswer[i]);

        Button button = new Button("?", this);
        panel.add(button);
        buttonPolygonCreation.add(button);
    }
    answerPanel.add(checkBoxImageAnswer);
    grid.setText(row, 0, "");
    grid.setWidget(row++, 1, answerPanel);

    // ???
    grid.setText(row, 0, "???");
    grid.setWidget(row++, 1, listBoxNumberOfDisplayedChoices);
    listBoxNumberOfDisplayedChoices.setWidth("50px");
    listBoxNumberOfDisplayedChoices.addItem("3");
    listBoxNumberOfDisplayedChoices.addItem("4");
    listBoxNumberOfDisplayedChoices.setSelectedIndex(1);

    // 
    grid.setText(row, 0, "");
    {
        VerticalPanel panel = new VerticalPanel();
        panel.setStyleName("gridNoFrame");
        panel.addStyleName("gridFontNormal");
        {
            radioButtonNone.setValue(true);
            radioButtonNone.addClickHandler(this);
            radioButtonImage.addClickHandler(this);
            radioButtonYouTube.addClickHandler(this);

            HorizontalPanel panel2 = new HorizontalPanel();
            panel2.add(radioButtonNone);
            panel2.add(radioButtonImage);
            panel2.add(radioButtonYouTube);
            panel.add(panel2);
        }
        {
            textBoxExternalUrl.setWidth("400px");

            panelExternalUrl.add(new Label("URL"));
            panelExternalUrl.add(textBoxExternalUrl);
            panel.add(panelExternalUrl);
        }
        grid.setWidget(row++, 1, panel);
    }

    // ?
    textBoxCreator.setWidth("200px");
    textBoxCreator.setMaxLength(MAX_PLAYER_NAME_LENGTH);
    textBoxCreator.setText(UserData.get().getPlayerName());
    grid.setText(row, 0, "??");
    grid.setWidget(row++, 1, textBoxCreator);

    // 
    grid.setText(row, 0, "");
    HorizontalPanel panelAnswerCount = new HorizontalPanel();
    panelAnswerCount.add(labelAnswerCounter);
    panelAnswerCount.add(checkBoxResetAnswerCount);
    panelAnswerCount.add(checkBoxRemovePlayerAnswers);
    checkBoxResetAnswerCount.setVisible(false);
    checkBoxRemovePlayerAnswers.setVisible(false);
    grid.setWidget(row++, 1, panelAnswerCount);

    // 
    grid.setText(row, 0, "+1");
    HorizontalPanel panelVoteCount = new HorizontalPanel();
    panelVoteCount.add(htmlPlusOne);
    grid.setWidget(row++, 1, panelVoteCount);

    // 
    grid.setText(row, 0, "?");
    HorizontalPanel panelGood = new HorizontalPanel();
    panelGood.add(labelGood);
    panelGood.add(checkBoxResetVote);
    checkBoxResetVote.setVisible(false);
    grid.setWidget(row++, 1, panelGood);

    // 
    grid.setText(row, 0, "");
    HorizontalPanel panelIndicate = new HorizontalPanel();
    buttonIndicate.setVisible(false);
    checkBoxUnindicate.setVisible(false);
    panelIndicate.add(buttonIndicate);
    panelIndicate.add(checkBoxUnindicate);
    grid.setWidget(row++, 1, panelIndicate);
    buttonIndicate.addClickHandler(this);

    // ?
    grid.setText(row, 0, "?");
    textAreaNote.setCharacterWidth(60);
    textAreaNote.setVisibleLines(5);
    grid.setWidget(row++, 1, textAreaNote);

    // ?
    grid.setText(row, 0, "?");
    grid.setWidget(row++, 1, panelProblemFeedback);

    add(grid);

    updateForm();
}