Example usage for com.google.gwt.user.client.ui FlexTable getRowCount

List of usage examples for com.google.gwt.user.client.ui FlexTable getRowCount

Introduction

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

Prototype

@Override
public int getRowCount() 

Source Link

Document

Gets the number of rows.

Usage

From source file:com.ikon.frontend.client.widget.form.FormManager.java

License:Open Source License

/**
 * drawFormElement/*  w  w w.  ja va  2  s  . c  o  m*/
 */
private void drawFormElement(int row, final GWTFormElement gwtFormElement, boolean readOnly,
        boolean searchView) {
    final String propertyName = gwtFormElement.getName();

    if (gwtFormElement instanceof GWTButton) {
        final GWTButton gWTButton = (GWTButton) gwtFormElement;

        if (submitForm != null) {
            submitForm.setVisible(false); // Always set form hidden because there's new buttons
        }

        Button transButton = new Button(gWTButton.getLabel());
        String style = Character.toUpperCase(gWTButton.getStyle().charAt(0))
                + gWTButton.getStyle().substring(1);
        transButton.setStyleName("okm-" + style + "Button");
        HTML space = new HTML(" ");
        submitButtonPanel.add(transButton);
        submitButtonPanel.add(space);
        submitButtonPanel.setCellWidth(space, "5px");

        // Setting submit button
        transButton.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                if (gWTButton.getConfirmation() != null && !gWTButton.getConfirmation().equals("")) {
                    Main.get().confirmPopup.setConfirm(ConfirmPopup.CONFIRM_WORKFLOW_ACTION);
                    Main.get().confirmPopup.setConfirmationText(gWTButton.getConfirmation());
                    ValidationButton validationButton = new ValidationButton(gWTButton, singleton);
                    Main.get().confirmPopup.setValue(validationButton);
                    Main.get().confirmPopup.center();
                } else {
                    if (gWTButton.isValidate()) {
                        if (validationProcessor.validate()) {
                            if (gWTButton.getTransition().equals("")) {
                                workflow.setTaskInstanceValues(taskInstance.getId(), null);
                            } else {
                                workflow.setTaskInstanceValues(taskInstance.getId(), gWTButton.getTransition());
                            }
                            disableAllButtonList();
                        }
                    } else {
                        if (gWTButton.getTransition().equals("")) {
                            workflow.setTaskInstanceValues(taskInstance.getId(), null);
                        } else {
                            workflow.setTaskInstanceValues(taskInstance.getId(), gWTButton.getTransition());
                        }
                        disableAllButtonList();
                    }
                }
            }
        });

        // Adding button to control list
        if (!buttonControlList.contains(transButton)) {
            buttonControlList.add(transButton);
        }
    } else if (gwtFormElement instanceof GWTTextArea) {
        HorizontalPanel hPanel = new HorizontalPanel();
        TextArea textArea = new TextArea();
        textArea.setEnabled((!readOnly && !((GWTTextArea) gwtFormElement).isReadonly()) || isSearchView); // read only
        hPanel.add(textArea);
        textArea.setStyleName("okm-TextArea");
        textArea.setText(((GWTTextArea) gwtFormElement).getValue());
        textArea.setSize(gwtFormElement.getWidth(), gwtFormElement.getHeight());
        HTML text = new HTML(); // Create a widget for this property
        text.setHTML(((GWTTextArea) gwtFormElement).getValue().replaceAll("\n", "<br>"));
        hWidgetProperties.put(propertyName, hPanel);
        table.setHTML(row, 0, "<b>" + gwtFormElement.getLabel() + "</b>");
        table.setWidget(row, 1, text);
        table.getCellFormatter().setVerticalAlignment(row, 0, VerticalPanel.ALIGN_TOP);
        table.getCellFormatter().setWidth(row, 1, "100%");

        if (searchView) {
            final Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon());
            removeImage.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    for (int row = 0; row < table.getRowCount(); row++) {
                        if (table.getWidget(row, 2).equals(removeImage)) {
                            table.removeRow(row);
                            break;
                        }
                    }

                    hWidgetProperties.remove(propertyName);
                    hPropertyParams.remove(propertyName);
                    formElementList.remove(gwtFormElement);
                    search.propertyRemoved();
                }
            });

            removeImage.addStyleName("okm-Hyperlink");
            table.setWidget(row, 2, removeImage);
            table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

            if (search != null) {
                textArea.addKeyUpHandler(new KeyUpHandler() {
                    @Override
                    public void onKeyUp(KeyUpEvent event) {
                        search.metadataValueChanged();
                    }
                });
            }

            setRowWordWarp(row, 3, true);
        } else {
            setRowWordWarp(row, 2, true);
        }
    } else if (gwtFormElement instanceof GWTInput) {
        final HorizontalPanel hPanel = new HorizontalPanel();
        final TextBox textBox = new TextBox(); // Create a widget for this property
        textBox.setEnabled((!readOnly && !((GWTInput) gwtFormElement).isReadonly()) || isSearchView); // read only
        hPanel.add(textBox);
        String value = "";

        if (((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_TEXT)
                || ((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_LINK)
                || ((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_FOLDER)) {
            textBox.setText(((GWTInput) gwtFormElement).getValue());
            value = ((GWTInput) gwtFormElement).getValue();
        } else if (((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_DATE)) {
            if (((GWTInput) gwtFormElement).getDate() != null) {
                DateTimeFormat dtf = DateTimeFormat.getFormat(Main.i18n("general.day.pattern"));
                textBox.setText(dtf.format(((GWTInput) gwtFormElement).getDate()));
                value = dtf.format(((GWTInput) gwtFormElement).getDate());
            }
        }

        textBox.setWidth(gwtFormElement.getWidth());
        textBox.setStyleName("okm-Input");
        hWidgetProperties.put(propertyName, hPanel);
        table.setHTML(row, 0, "<b>" + gwtFormElement.getLabel() + "</b>");
        table.setHTML(row, 1, value);

        if (((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_DATE)) {
            final PopupPanel calendarPopup = new PopupPanel(true);
            final CalendarWidget calendar = new CalendarWidget();

            calendar.addChangeHandler(new ChangeHandler() {
                @Override
                public void onChange(ChangeEvent event) {
                    calendarPopup.hide();
                    DateTimeFormat dtf = DateTimeFormat.getFormat(Main.i18n("general.day.pattern"));
                    textBox.setText(dtf.format(calendar.getDate()));
                    ((GWTInput) gwtFormElement).setDate(calendar.getDate());

                    if (search != null) {
                        search.metadataValueChanged();
                    }
                }
            });

            calendarPopup.add(calendar);
            final Image calendarIcon = new Image(OKMBundleResources.INSTANCE.calendar());

            if (readOnly || ((GWTInput) gwtFormElement).isReadonly()) { // read only
                calendarIcon.setResource(OKMBundleResources.INSTANCE.calendarDisabled());
            } else {
                calendarIcon.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        calendarPopup.setPopupPosition(calendarIcon.getAbsoluteLeft(),
                                calendarIcon.getAbsoluteTop() - 2);
                        if (calendar.getDate() != null) {
                            calendar.setNow((Date) calendar.getDate().clone());
                        } else {
                            calendar.setNow(null);
                        }
                        calendarPopup.show();
                    }
                });
            }

            calendarIcon.setStyleName("okm-Hyperlink");
            hPanel.add(Util.hSpace("5"));
            hPanel.add(calendarIcon);
            textBox.setEnabled(false);
        } else if (((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_LINK)) {
            if (!value.equals("")) {
                HorizontalPanel hLinkPanel = new HorizontalPanel();
                Anchor anchor = new Anchor(value, true);
                final String url = value;

                anchor.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        Window.open(url, url, "");
                    }
                });

                anchor.setStyleName("okm-Hyperlink");
                String containerName = ((GWTInput) gwtFormElement).getName() + "ContainerName";
                hLinkPanel.add(new HTML("<div id=\"" + containerName + "\"></div>\n"));
                HTML space = new HTML("");
                hLinkPanel.add(space);
                hLinkPanel.add(anchor);
                hLinkPanel.setCellWidth(space, "5px");
                table.setWidget(row, 1, hLinkPanel);
                Util.createLinkClipboardButton(url, containerName);
            } else {
                table.setHTML(row, 1, "");
            }
        } else if (((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_FOLDER)) {
            if (!value.equals("")) {
                Anchor anchor = new Anchor();
                final GWTFolder folder = ((GWTInput) gwtFormElement).getFolder();

                // remove first ocurrence
                String path = value.substring(value.indexOf("/", 1) + 1);

                // Looks if must change icon on parent if now has no childs and properties with user security
                // atention
                if (folder.isHasChildren()) {
                    anchor.setHTML(Util.imageItemHTML("img/menuitem_childs.gif", path, "top"));
                } else {
                    anchor.setHTML(Util.imageItemHTML("img/menuitem_empty.gif", path, "top"));
                }

                anchor.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent arg0) {
                        CommonUI.openPath(folder.getPath(), null);
                    }
                });

                anchor.setStyleName("okm-KeyMap-ImageHover");
                table.setWidget(row, 1, anchor);
            } else {
                table.setHTML(row, 1, "");
            }

            Image pathExplorer = new Image(OKMBundleResources.INSTANCE.folderExplorer());
            pathExplorer.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    // when any changes is done is fired search.metadataValueChanged();
                    folderSelectPopup.show(textBox, search);
                }
            });

            pathExplorer.setStyleName("okm-KeyMap-ImageHover");
            hPanel.add(Util.hSpace("5"));
            hPanel.add(pathExplorer);
            hPanel.setCellVerticalAlignment(pathExplorer, HasAlignment.ALIGN_MIDDLE);
            pathExplorer.setVisible((!readOnly && !((GWTInput) gwtFormElement).isReadonly()) || isSearchView); // read only
            textBox.setEnabled(false);
        }

        table.getCellFormatter().setVerticalAlignment(row, 0, VerticalPanel.ALIGN_TOP);
        table.getCellFormatter().setWidth(row, 1, "100%");

        if (searchView) {
            // Second date input
            if (((GWTInput) gwtFormElement).getType().equals(GWTInput.TYPE_DATE)) {
                final TextBox textBoxTo = new TextBox();
                textBoxTo.setWidth(gwtFormElement.getWidth());
                textBoxTo.setStyleName("okm-Input");
                hPanel.add(new HTML("&nbsp;&harr;&nbsp;"));
                hPanel.add(textBoxTo);

                if (((GWTInput) gwtFormElement).getDateTo() != null) {
                    DateTimeFormat dtf = DateTimeFormat.getFormat(Main.i18n("general.day.pattern"));
                    textBoxTo.setText(dtf.format(((GWTInput) gwtFormElement).getDateTo()));
                }

                final PopupPanel calendarPopup = new PopupPanel(true);
                final CalendarWidget calendar = new CalendarWidget();
                calendar.addChangeHandler(new ChangeHandler() {
                    @Override
                    public void onChange(ChangeEvent event) {
                        calendarPopup.hide();
                        DateTimeFormat dtf = DateTimeFormat.getFormat(Main.i18n("general.day.pattern"));
                        textBoxTo.setText(dtf.format(calendar.getDate()));
                        ((GWTInput) gwtFormElement).setDateTo(calendar.getDate());

                        if (search != null) {
                            search.metadataValueChanged();
                        }
                    }
                });

                calendarPopup.add(calendar);
                final Image calendarIcon = new Image(OKMBundleResources.INSTANCE.calendar());
                calendarIcon.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        calendarPopup.setPopupPosition(calendarIcon.getAbsoluteLeft(),
                                calendarIcon.getAbsoluteTop() - 2);
                        calendarPopup.show();
                    }
                });

                calendarIcon.setStyleName("okm-Hyperlink");
                hPanel.add(Util.hSpace("5"));
                hPanel.add(calendarIcon);
                textBoxTo.setEnabled(false);

                // Clean
                final Image cleanIcon = new Image(OKMBundleResources.INSTANCE.cleanIcon());
                cleanIcon.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        TextBox textBox = (TextBox) hPanel.getWidget(0);
                        textBox.setText("");
                        textBoxTo.setText("");
                        ((GWTInput) gwtFormElement).setDate(null);
                        ((GWTInput) gwtFormElement).setDateTo(null);
                    }
                });
                cleanIcon.setStyleName("okm-Hyperlink");
                hPanel.add(Util.hSpace("5"));
                hPanel.add(cleanIcon);
            }

            // Delete
            final Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon());
            removeImage.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    for (int row = 0; row < table.getRowCount(); row++) {
                        if (table.getWidget(row, 2).equals(removeImage)) {
                            table.removeRow(row);
                            break;
                        }
                    }

                    hWidgetProperties.remove(propertyName);
                    hPropertyParams.remove(propertyName);
                    formElementList.remove(gwtFormElement);
                    search.propertyRemoved();
                }
            });
            removeImage.addStyleName("okm-Hyperlink");
            table.setWidget(row, 2, removeImage);
            table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

            if (search != null) {
                textBox.addKeyUpHandler(new KeyUpHandler() {
                    @Override
                    public void onKeyUp(KeyUpEvent event) {
                        search.metadataValueChanged();
                    }
                });
            }

            setRowWordWarp(row, 3, true);
        } else {
            // Clean icon ( case is not readonly )
            final Image cleanIcon = new Image(OKMBundleResources.INSTANCE.cleanIcon());
            cleanIcon.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    TextBox textBox = (TextBox) hPanel.getWidget(0);
                    textBox.setText("");
                    ((GWTInput) gwtFormElement).setDate(null);
                    ((GWTInput) gwtFormElement).setFolder(new GWTFolder());
                }
            });
            cleanIcon.setStyleName("okm-Hyperlink");
            hPanel.add(Util.hSpace("5"));
            hPanel.add(cleanIcon);
            cleanIcon.setVisible((!readOnly && !((GWTInput) gwtFormElement).isReadonly())); // read only

            setRowWordWarp(row, 2, true);
        }

    } else if (gwtFormElement instanceof GWTSuggestBox) {
        HorizontalPanel hPanel = new HorizontalPanel();
        final GWTSuggestBox suggestBox = (GWTSuggestBox) gwtFormElement;
        final TextBox textBox = new TextBox(); // Create a widget for this property
        textBox.setWidth(gwtFormElement.getWidth());
        textBox.setStyleName("okm-Input");
        textBox.setReadOnly(true);
        textBox.setEnabled((!readOnly && !suggestBox.isReadonly()) || isSearchView); // read only 
        final HTML hiddenKey = new HTML("");
        hiddenKey.setVisible(false);

        if (suggestBox.getValue() != null) {
            hiddenKey.setHTML(suggestBox.getValue());
        }

        hPanel.add(textBox);
        hPanel.add(hiddenKey);
        final HTML value = new HTML("");
        table.setHTML(row, 0, "<b>" + gwtFormElement.getLabel() + "</b>");
        table.setWidget(row, 1, value);
        table.getCellFormatter().setVerticalAlignment(row, 0, VerticalPanel.ALIGN_TOP);
        table.getCellFormatter().setWidth(row, 1, "100%");

        if (textBox.isEnabled()) {
            final Image databaseRecordImage = new Image(OKMBundleResources.INSTANCE.databaseRecord());
            databaseRecordImage.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    List<String> tables = new ArrayList<String>();
                    if (suggestBox.getTable() != null) {
                        tables.add(suggestBox.getTable());
                    }

                    DatabaseRecord databaseRecord = new DatabaseRecord(hiddenKey, textBox);
                    // when any changes is done is fired search.metadataValueChanged();
                    DatabaseRecordSelectPopup drsPopup = new DatabaseRecordSelectPopup(suggestBox,
                            databaseRecord, search);
                    drsPopup.setWidth("300");
                    drsPopup.setHeight("220");
                    drsPopup.setStyleName("okm-Popup");
                    drsPopup.setPopupPosition(databaseRecordImage.getAbsoluteLeft(),
                            databaseRecordImage.getAbsoluteTop() - 2);
                    drsPopup.show();
                }
            });
            databaseRecordImage.setStyleName("okm-Hyperlink");
            hPanel.add(new HTML("&nbsp;"));
            hPanel.add(databaseRecordImage);
        }

        hWidgetProperties.put(propertyName, hPanel);
        if (!suggestBox.getValue().equals("")) {
            textBox.setValue(suggestBox.getText());
            value.setHTML(suggestBox.getText());
            hiddenKey.setHTML(suggestBox.getValue());

            /*List<String> tables = new ArrayList<String>();
                    
            if (suggestBox.getTable() != null) {
               tables.add(suggestBox.getTable());
            }
                    
            String formatedQuery = MessageFormat.format(suggestBox.getValueQuery(), suggestBox.getValue());
            keyValueService.getKeyValues(tables, formatedQuery, new AsyncCallback<List<GWTKeyValue>>() {
               @Override
               public void onSuccess(List<GWTKeyValue> result) {
                  if (!result.isEmpty()) {
             GWTKeyValue keyValue = result.get(0);
             textBox.setValue(keyValue.getValue());
             value.setHTML(keyValue.getValue());
             hiddenKey.setHTML(keyValue.getKey());
                  }
               }
                       
               @Override
               public void onFailure(Throwable caught) {
                  Main.get().showError("getKeyValues", caught);
               }
            }); */
        }

        if (searchView) {
            final Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon());
            removeImage.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    for (int row = 0; row < table.getRowCount(); row++) {
                        if (table.getWidget(row, 2).equals(removeImage)) {
                            table.removeRow(row);
                            break;
                        }
                    }

                    hWidgetProperties.remove(propertyName);
                    hPropertyParams.remove(propertyName);
                    formElementList.remove(gwtFormElement);
                    search.propertyRemoved();
                }
            });
            removeImage.addStyleName("okm-Hyperlink");
            table.setWidget(row, 2, removeImage);
            table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);
            textBox.addKeyUpHandler(
                    Main.get().mainPanel.search.searchBrowser.searchIn.searchControl.keyUpHandler);
            setRowWordWarp(row, 3, true);
        } else {
            setRowWordWarp(row, 2, true);
        }
    } else if (gwtFormElement instanceof GWTCheckBox) {
        CheckBox checkBox = new CheckBox();
        checkBox.setEnabled((!readOnly && !((GWTCheckBox) gwtFormElement).isReadonly()) || isSearchView); // read only
        checkBox.setValue(((GWTCheckBox) gwtFormElement).getValue());
        hWidgetProperties.put(propertyName, checkBox);
        table.setHTML(row, 0, "<b>" + gwtFormElement.getLabel() + "</b>");

        if (checkBox.getValue()) {
            table.setWidget(row, 1, new Image(OKMBundleResources.INSTANCE.yes()));
        } else {
            table.setWidget(row, 1, new Image(OKMBundleResources.INSTANCE.no()));
        }

        table.getCellFormatter().setVerticalAlignment(row, 0, VerticalPanel.ALIGN_TOP);
        table.getCellFormatter().setWidth(row, 1, "100%");

        if (searchView) {
            final Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon());
            removeImage.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    for (int row = 0; row < table.getRowCount(); row++) {
                        if (table.getWidget(row, 2).equals(removeImage)) {
                            table.removeRow(row);
                            break;
                        }
                    }

                    hWidgetProperties.remove(propertyName);
                    hPropertyParams.remove(propertyName);
                    formElementList.remove(gwtFormElement);
                    search.propertyRemoved();
                }
            });
            removeImage.addStyleName("okm-Hyperlink");
            table.setWidget(row, 2, removeImage);
            table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

            if (search != null) {
                checkBox.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        search.metadataValueChanged();
                    }
                });
            }

            setRowWordWarp(row, 3, true);
        } else {
            setRowWordWarp(row, 2, true);
        }
    } else if (gwtFormElement instanceof GWTSelect) {
        final GWTSelect gwtSelect = (GWTSelect) gwtFormElement;

        if (!gwtSelect.getOptionsData().equals("")
                && workflowVarMap.keySet().contains(gwtSelect.getOptionsData())) {
            gwtSelect.setOptions(getOptionsFromVariable(workflowVarMap.get(gwtSelect.getOptionsData())));
        }

        if (gwtSelect.getType().equals(GWTSelect.TYPE_SIMPLE)) {
            String selectedLabel = "";
            HorizontalPanel hPanel = new HorizontalPanel();
            ListBox listBox = new ListBox();
            listBox.setEnabled((!readOnly && !gwtSelect.isReadonly()) || isSearchView); // read only
            hPanel.add(listBox);
            listBox.setStyleName("okm-Select");
            listBox.addItem("", ""); // Always we set and empty value

            for (GWTOption option : gwtSelect.getOptions()) {
                listBox.addItem(option.getLabel(), option.getValue());
                if (option.isSelected()) {
                    listBox.setItemSelected(listBox.getItemCount() - 1, true);
                    selectedLabel = option.getLabel();
                }
            }

            hWidgetProperties.put(propertyName, hPanel);

            table.setHTML(row, 0, "<b>" + gwtFormElement.getLabel() + "</b>");
            table.setHTML(row, 1, selectedLabel);
            table.getCellFormatter().setWidth(row, 1, "100%");

            if (searchView) {
                final Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon());
                removeImage.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        for (int row = 0; row < table.getRowCount(); row++) {
                            if (table.getWidget(row, 2).equals(removeImage)) {
                                table.removeRow(row);
                                break;
                            }
                        }

                        hWidgetProperties.remove(propertyName);
                        hPropertyParams.remove(propertyName);
                        formElementList.remove(gwtFormElement);
                        search.propertyRemoved();
                    }
                });
                removeImage.addStyleName("okm-Hyperlink");
                table.setWidget(row, 2, removeImage);
                table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

                if (search != null) {
                    listBox.addChangeHandler(new ChangeHandler() {
                        @Override
                        public void onChange(ChangeEvent event) {
                            search.metadataValueChanged();
                        }
                    });
                }

                setRowWordWarp(row, 3, true);
            } else {
                setRowWordWarp(row, 2, true);
            }

        } else if (gwtSelect.getType().equals(GWTSelect.TYPE_MULTIPLE)) {
            final HorizontalPanel hPanel = new HorizontalPanel();
            ListBox listMulti = new ListBox();
            listMulti.setEnabled((!readOnly && !gwtSelect.isReadonly()) || isSearchView); // read only
            listMulti.setStyleName("okm-Select");
            listMulti.addItem("", ""); // Always we set and empty value

            // Table for values
            FlexTable tableMulti = new FlexTable();

            Button addButton = new Button(Main.i18n("button.add"), new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(propertyName);
                    FlexTable tableMulti = (FlexTable) hPanel.getWidget(0);
                    ListBox listMulti = (ListBox) hPanel.getWidget(2);
                    Button addButton = (Button) hPanel.getWidget(4);

                    if (listMulti.getSelectedIndex() > 0) {
                        final HTML htmlValue = new HTML(listMulti.getValue(listMulti.getSelectedIndex()));
                        int rowTableMulti = tableMulti.getRowCount();
                        Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon());

                        removeImage.addClickHandler(new ClickHandler() {
                            @Override
                            public void onClick(ClickEvent event) {
                                Widget sender = (Widget) event.getSource();
                                HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(propertyName);
                                FlexTable tableMulti = (FlexTable) hPanel.getWidget(0);
                                ListBox listMulti = (ListBox) hPanel.getWidget(2);
                                Button addButton = (Button) hPanel.getWidget(4);
                                String value = htmlValue.getText();
                                String optionLabel = "";

                                for (Iterator<GWTOption> itOptions = gwtSelect.getOptions()
                                        .iterator(); itOptions.hasNext();) {
                                    GWTOption option = itOptions.next();
                                    if (option.getValue().equals(htmlValue.getText())) {
                                        optionLabel = option.getLabel();
                                        break;
                                    }
                                }

                                listMulti.addItem(optionLabel, value);
                                listMulti.setVisible(true);
                                addButton.setVisible(true);

                                // Looking for row to delete
                                for (int i = 0; i < tableMulti.getRowCount(); i++) {
                                    if (tableMulti.getWidget(i, 1).equals(sender)) {
                                        tableMulti.removeRow(i);
                                    }
                                }

                                if (search != null) {
                                    search.metadataValueChanged();
                                }
                            }
                        });
                        removeImage.setStyleName("okm-Hyperlink");

                        tableMulti.setWidget(rowTableMulti, 0, htmlValue);
                        tableMulti.setWidget(rowTableMulti, 1, removeImage);
                        tableMulti.setHTML(rowTableMulti, 2,
                                listMulti.getItemText(listMulti.getSelectedIndex()));

                        setRowWordWarp(tableMulti, rowTableMulti, 2, true);
                        listMulti.removeItem(listMulti.getSelectedIndex());
                        htmlValue.setVisible(false);

                        if (listMulti.getItemCount() <= 1) {
                            listMulti.setVisible(false);
                            addButton.setVisible(false);
                        }

                        if (search != null) {
                            search.metadataValueChanged();
                        }
                    }
                }
            });

            addButton.setEnabled((!readOnly && !gwtSelect.isReadonly()) || isSearchView); // read only
            addButton.setStyleName("okm-AddButton");

            hPanel.add(tableMulti);
            hPanel.add(new HTML("&nbsp;"));
            hPanel.add(listMulti);
            hPanel.add(new HTML("&nbsp;"));
            hPanel.add(addButton);
            hPanel.setVisible(true);
            listMulti.setVisible(false);
            addButton.setVisible(false);
            hPanel.setCellVerticalAlignment(tableMulti, VerticalPanel.ALIGN_TOP);
            hPanel.setCellVerticalAlignment(listMulti, VerticalPanel.ALIGN_TOP);
            hPanel.setCellVerticalAlignment(addButton, VerticalPanel.ALIGN_TOP);
            hPanel.setHeight("100%");

            table.setHTML(row, 0, "<b>" + gwtFormElement.getLabel() + "</b>");
            table.setWidget(row, 1, hPanel);
            table.getCellFormatter().setVerticalAlignment(row, 0, VerticalPanel.ALIGN_TOP);
            table.getCellFormatter().setVerticalAlignment(row, 1, VerticalPanel.ALIGN_TOP);
            table.getCellFormatter().setWidth(row, 1, "100%");

            for (Iterator<GWTOption> itData = gwtSelect.getOptions().iterator(); itData.hasNext();) {
                final GWTOption option = itData.next();

                // Looks if there's some selected value
                if (option.isSelected()) {
                    int rowTableMulti = tableMulti.getRowCount();
                    HTML htmlValue = new HTML(option.getValue());

                    Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon()); // read only for this element goes at edit() logic
                    removeImage.addClickHandler(new ClickHandler() {
                        @Override
                        public void onClick(ClickEvent event) {
                            Widget sender = (Widget) event.getSource();
                            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(propertyName);
                            FlexTable tableMulti = (FlexTable) hPanel.getWidget(0);
                            ListBox listMulti = (ListBox) hPanel.getWidget(2);
                            Button addButton = (Button) hPanel.getWidget(4);

                            listMulti.addItem(option.getLabel(), option.getValue());
                            listMulti.setVisible(true);
                            addButton.setVisible(true);

                            // Looking for row to delete
                            for (int i = 0; i < tableMulti.getRowCount(); i++) {
                                if (tableMulti.getWidget(i, 1).equals(sender)) {
                                    tableMulti.removeRow(i);
                                }
                            }

                            if (search != null) {
                                search.metadataValueChanged();
                            }
                        }
                    });
                    removeImage.setStyleName("okm-Hyperlink");

                    tableMulti.setWidget(rowTableMulti, 0, htmlValue);
                    tableMulti.setWidget(rowTableMulti, 1, removeImage);
                    tableMulti.setHTML(rowTableMulti, 2, option.getLabel());
                    setRowWordWarp(tableMulti, rowTableMulti, 2, true);
                    htmlValue.setVisible(false);
                    removeImage.setVisible(false);
                } else {
                    listMulti.addItem(option.getLabel(), option.getValue());
                }
            }

            // Save panel
            hWidgetProperties.put(propertyName, hPanel);

            if (searchView) {
                final Image removeImage = new Image(OKMBundleResources.INSTANCE.deleteIcon());
                removeImage.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        for (int row = 0; row < table.getRowCount(); row++) {
                            if (table.getWidget(row, 2).equals(removeImage)) {
                                table.removeRow(row);
                                break;
                            }
                        }

                        hWidgetProperties.remove(propertyName);
                        hPropertyParams.remove(propertyName);
                        formElementList.remove(gwtFormElement);
                        search.propertyRemoved();
                    }
                });
                removeImage.addStyleName("okm-Hyperlink");
                table.setWidget(row, 2, removeImage);
                table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

                // not implemented
                // textBox.addKeyUpHandler(Main.get().mainPanel.search.searchBrowser.searchIn.searchControl.keyUpHandler);
                setRowWordWarp(row, 3, true);
            } else {
                setRowWordWarp(row, 2, true);
            }
        }
    } else if (gwtFormElement instanceof GWTUpload) {
        final GWTUpload upload = (GWTUpload) gwtFormElement;
        HorizontalPanel hPanel = new HorizontalPanel();
        FileUpload fileUpload = new FileUpload();
        fileUpload.setStyleName("okm-Input");
        fileUpload.getElement().setAttribute("size", "" + upload.getWidth());
        final Anchor documentLink = new Anchor();

        // Setting document link by uuid
        if (upload.getDocumentUuid() != null && !upload.getDocumentUuid().equals("")) {
            repositoryService.getPathByUUID(upload.getDocumentUuid(), new AsyncCallback<String>() {
                @Override
                public void onSuccess(String result) {
                    documentService.get(result, new AsyncCallback<GWTDocument>() {
                        @Override
                        public void onSuccess(GWTDocument result) {
                            final String docPath = result.getPath();
                            documentLink.setText(result.getName());
                            documentLink.addClickHandler(new ClickHandler() {
                                @Override
                                public void onClick(ClickEvent event) {
                                    String path = docPath.substring(0, docPath.lastIndexOf("/"));
                                    CommonUI.openPath(path, docPath);
                                }
                            });
                        }

                        @Override
                        public void onFailure(Throwable caught) {
                            Main.get().showError("getDocument", caught);
                        }
                    });
                }

                @Override
                public void onFailure(Throwable caught) {
                    Main.get().showError("getPathByUUID", caught);
                }
            });
        }

        documentLink.setStyleName("okm-Hyperlink");
        hPanel.add(documentLink);
        hPanel.add(fileUpload);
        hWidgetProperties.put(propertyName, hPanel);
        table.setHTML(row, 0, "<b>" + gwtFormElement.getLabel() + "</b>");
        table.setWidget(row, 1, new HTML(""));
        table.getCellFormatter().setVerticalAlignment(row, 0, VerticalPanel.ALIGN_TOP);
        table.getCellFormatter().setWidth(row, 1, "100%");
        setRowWordWarp(row, 2, true);

        // If folderPath is null must initialize value
        if (upload.getFolderPath() == null || upload.getFolderPath().equals("")
                && upload.getFolderUuid() != null && !upload.getFolderUuid().equals("")) {
            repositoryService.getPathByUUID(upload.getFolderUuid(), new AsyncCallback<String>() {
                @Override
                public void onSuccess(String result) {
                    upload.setFolderPath(result);
                }

                @Override
                public void onFailure(Throwable caught) {
                    Main.get().showError("getPathByUUID", caught);
                }
            });
        }
    } else if (gwtFormElement instanceof GWTText) {
        HorizontalPanel hPanel = new HorizontalPanel();
        HTML title = new HTML("&nbsp;" + ((GWTText) gwtFormElement).getLabel() + "&nbsp;");
        title.setStyleName("okm-NoWrap");
        hPanel.add(Util.hSpace("10"));
        hPanel.add(title);
        hPanel.setCellWidth(title, ((GWTText) gwtFormElement).getWidth());
        hWidgetProperties.put(propertyName, hPanel);
        table.setWidget(row, 0, hPanel);
        table.getFlexCellFormatter().setColSpan(row, 0, 2);
    } else if (gwtFormElement instanceof GWTSeparator) {
        HorizontalPanel hPanel = new HorizontalPanel();
        Image horizontalLine = new Image("img/transparent_pixel.gif");
        horizontalLine.setStyleName("okm-TopPanel-Line-Border");
        horizontalLine.setSize("10", "2px");
        Image horizontalLine2 = new Image("img/transparent_pixel.gif");
        horizontalLine2.setStyleName("okm-TopPanel-Line-Border");
        horizontalLine2.setSize("100%", "2px");
        HTML title = new HTML("&nbsp;" + ((GWTSeparator) gwtFormElement).getLabel() + "&nbsp;");
        title.setStyleName("okm-NoWrap");
        hPanel.add(horizontalLine);
        hPanel.add(title);
        hPanel.add(horizontalLine2);
        hPanel.setCellVerticalAlignment(horizontalLine, HasAlignment.ALIGN_MIDDLE);
        hPanel.setCellVerticalAlignment(horizontalLine2, HasAlignment.ALIGN_MIDDLE);
        hPanel.setCellWidth(horizontalLine2, ((GWTSeparator) gwtFormElement).getWidth());
        hWidgetProperties.put(propertyName, hPanel);
        table.setWidget(row, 0, hPanel);
        table.getFlexCellFormatter().setColSpan(row, 0, 2);
    } else if (gwtFormElement instanceof GWTDownload) {
        HorizontalPanel hPanel = new HorizontalPanel();
        hWidgetProperties.put(propertyName, hPanel);
        table.setWidget(row, 0, hPanel);
        table.getFlexCellFormatter().setColSpan(row, 0, 2);
        GWTDownload download = (GWTDownload) gwtFormElement;
        FlexTable downloadTable = new FlexTable();
        HTML description = new HTML("<b>" + gwtFormElement.getLabel() + "</b>");
        downloadTable.setWidget(0, 0, description);
        downloadTable.getFlexCellFormatter().setColSpan(0, 0, 2);

        for (final GWTNode node : download.getNodes()) {
            int downloadTableRow = downloadTable.getRowCount();
            final Anchor anchor = new Anchor("<b>" + node.getLabel() + "</b>", true);

            if (!node.getUuid().equals("")) {
                repositoryService.getPathByUUID(node.getUuid(), new AsyncCallback<String>() {
                    @Override
                    public void onSuccess(String result) {
                        folderService.isValid(result, new AsyncCallback<Boolean>() {
                            @Override
                            public void onSuccess(Boolean result) {
                                final boolean isFolder = result;
                                anchor.addClickHandler(new ClickHandler() {
                                    @Override
                                    public void onClick(ClickEvent event) {
                                        if (isFolder) {
                                            Util.downloadFileByUUID(node.getUuid(), "export");
                                        } else {
                                            Util.downloadFileByUUID(node.getUuid(), "");
                                        }
                                    }
                                });
                            }

                            @Override
                            public void onFailure(Throwable caught) {
                                Main.get().showError("getPathByUUID", caught);
                            }
                        });
                    }

                    @Override
                    public void onFailure(Throwable caught) {
                        Main.get().showError("getPathByUUID", caught);
                    }
                });
            } else if (!node.getPath().equals("")) {
                repositoryService.getUUIDByPath(node.getPath(), new AsyncCallback<String>() {
                    @Override
                    public void onSuccess(String result) {
                        final String uuid = result;
                        folderService.isValid(node.getPath(), new AsyncCallback<Boolean>() {
                            @Override
                            public void onSuccess(Boolean result) {
                                final boolean isFolder = result;
                                anchor.addClickHandler(new ClickHandler() {
                                    @Override
                                    public void onClick(ClickEvent event) {
                                        if (isFolder) {
                                            Util.downloadFileByUUID(uuid, "export");
                                        } else {
                                            Util.downloadFileByUUID(uuid, "");
                                        }
                                    }
                                });
                            }

                            @Override
                            public void onFailure(Throwable caught) {
                                Main.get().showError("getPathByUUID", caught);
                            }
                        });
                    }

                    @Override
                    public void onFailure(Throwable caught) {
                        Main.get().showError("getUUIDByPath", caught);
                    }
                });
            }

            anchor.setStyleName("okm-Hyperlink");
            downloadTable.setWidget(downloadTableRow, 0, new HTML("&nbsp;&nbsp;&nbsp;"));
            downloadTable.setWidget(downloadTableRow, 1, anchor);
        }

        hPanel.add(downloadTable);
    } else if (gwtFormElement instanceof GWTPrint) {
        HorizontalPanel hPanel = new HorizontalPanel();
        hWidgetProperties.put(propertyName, hPanel);
        table.setWidget(row, 0, hPanel);
        table.getFlexCellFormatter().setColSpan(row, 0, 2);
        GWTPrint print = (GWTPrint) gwtFormElement;
        FlexTable printTable = new FlexTable();
        HTML description = new HTML("<b>" + gwtFormElement.getLabel() + "</b>");
        printTable.setWidget(0, 0, description);
        printTable.getFlexCellFormatter().setColSpan(0, 0, 2);

        for (final GWTNode node : print.getNodes()) {
            int downloadTableRow = printTable.getRowCount();
            final Button downloadButton = new Button(Main.i18n("button.print"));

            if (!node.getUuid().equals("")) {
                downloadButton.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        Window.alert("Not available");
                    }
                });
            } else if (!node.getPath().equals("")) {
                repositoryService.getUUIDByPath(node.getPath(), new AsyncCallback<String>() {
                    @Override
                    public void onSuccess(String result) {
                        //final String uuid = result;
                        downloadButton.addClickHandler(new ClickHandler() {
                            @Override
                            public void onClick(ClickEvent event) {
                                Window.alert("Not available");
                            }
                        });
                    }

                    @Override
                    public void onFailure(Throwable caught) {
                        Main.get().showError("getUUIDByPath", caught);
                    }
                });
            }

            downloadButton.setStyleName("okm-DownloadButton");
            printTable.setWidget(downloadTableRow, 0,
                    new HTML("&nbsp;&nbsp;&nbsp;" + node.getLabel() + "&nbsp;&nbsp;"));
            printTable.setWidget(downloadTableRow, 1, downloadButton);
        }

        hPanel.add(printTable);
    }
}

From source file:com.ikon.frontend.client.widget.form.FormManager.java

License:Open Source License

/**
 * Edit values//  w w w . jav a  2 s  .  c om
 */
public void edit() {
    // Before edit must be always drawed
    if (!drawed) {
        draw(readOnly);
    }

    int rows = 0;
    validationProcessor = new DefaultValidationProcessor();
    FocusAction focusAction = new FocusAction();

    for (Iterator<GWTFormElement> it = formElementList.iterator(); it.hasNext();) {
        GWTFormElement formField = it.next();

        if (formField instanceof GWTTextArea) {
            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formField.getName());
            table.setWidget(rows, 1, hPanel);

            for (GWTValidator validator : ((GWTTextArea) formField).getValidators()) {
                TextArea textArea = (TextArea) hPanel.getWidget(0);
                ValidatorBuilder.addValidator(validationProcessor, focusAction, hPanel, "textarea_" + rows,
                        validator, textArea);
            }
        } else if (formField instanceof GWTInput) {
            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formField.getName());
            table.setWidget(rows, 1, hPanel);

            for (GWTValidator validator : ((GWTInput) formField).getValidators()) {
                TextBox textBox = (TextBox) hPanel.getWidget(0);
                ValidatorBuilder.addValidator(validationProcessor, focusAction, hPanel, "input_" + rows,
                        validator, textBox);
            }
        } else if (formField instanceof GWTSuggestBox) {
            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formField.getName());
            table.setWidget(rows, 1, hPanel);

            for (GWTValidator validator : ((GWTSuggestBox) formField).getValidators()) {
                TextBox textBox = (TextBox) hPanel.getWidget(0);
                ValidatorBuilder.addValidator(validationProcessor, focusAction, hPanel, "suggestbox_" + rows,
                        validator, textBox);
            }
        } else if (formField instanceof GWTCheckBox) {
            CheckBox checkBox = (CheckBox) hWidgetProperties.get(formField.getName());
            table.setWidget(rows, 1, checkBox);
        } else if (formField instanceof GWTSelect) {
            GWTSelect gwtSelect = (GWTSelect) formField;

            if (gwtSelect.getType().equals(GWTSelect.TYPE_SIMPLE)) {
                HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formField.getName());
                ListBox listBox = (ListBox) hPanel.getWidget(0);
                table.setWidget(rows, 1, hPanel);

                for (GWTValidator validator : ((GWTSelect) formField).getValidators()) {
                    ValidatorBuilder.addValidator(validationProcessor, focusAction, hPanel, "select_" + rows,
                            validator, listBox);
                }
            } else if (gwtSelect.getType().equals(GWTSelect.TYPE_MULTIPLE)) {
                HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formField.getName());
                FlexTable tableMulti = (FlexTable) hPanel.getWidget(0);
                ListBox listMulti = (ListBox) hPanel.getWidget(2);
                Button addButton = (Button) hPanel.getWidget(4);

                // Only it there's some element to assign must set it visible.
                if (listMulti.getItemCount() > 1) {
                    listMulti.setVisible((!readOnly && !gwtSelect.isReadonly()) || isSearchView); // read only
                    addButton.setVisible((!readOnly && !gwtSelect.isReadonly()) || isSearchView); // read only);
                }

                // Enables deleting option
                for (int i = 0; i < tableMulti.getRowCount(); i++) {
                    ((Image) tableMulti.getWidget(i, 1))
                            .setVisible((!readOnly && !gwtSelect.isReadonly()) || isSearchView); // read only
                }

                table.setWidget(rows, 1, hPanel);

                for (GWTValidator validator : ((GWTSelect) formField).getValidators()) {
                    ValidatorBuilder.addValidator(validationProcessor, focusAction, hPanel, "select_" + rows,
                            validator, tableMulti);
                }
            }
        } else if (formField instanceof GWTUpload) {
            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formField.getName());
            table.setWidget(rows, 1, hPanel);

            for (GWTValidator validator : ((GWTUpload) formField).getValidators()) {
                FileUpload fileUpload = (FileUpload) hPanel.getWidget(1);
                ValidatorBuilder.addValidator(validationProcessor, focusAction, hPanel, "fileupload_" + rows,
                        validator, fileUpload);
            }
        } else if (formField instanceof GWTText) {
            // Nothing to be done here
        } else if (formField instanceof GWTSeparator) {
            // Nothing to be done here
        } else if (formField instanceof GWTDownload) {
            // Nothing to be done here
        } else if (formField instanceof GWTPrint) {
            // Nothing to be done here
        }

        rows++;
    }

    // Always ad submit form at ends
    if (submitForm != null) {
        HTML space = new HTML("&nbsp;");
        submitButtonPanel.add(submitForm);
        submitButtonPanel.add(space);
        submitButtonPanel.setCellWidth(space, "5px");
        int row = table.getRowCount();
        table.setWidget(row, 0, submitButtonPanel);
        table.getFlexCellFormatter().setColSpan(row, 0, 2);
        table.getFlexCellFormatter().setHorizontalAlignment(row, 0, HasAlignment.ALIGN_CENTER);
    }
}

From source file:com.ikon.frontend.client.widget.form.FormManager.java

License:Open Source License

/**
 * updateFormElementsWithNewer/* w w w . ja v  a2s.co  m*/
 */
public List<GWTFormElement> updateFormElementsValuesWithNewer() {
    for (GWTFormElement formElement : formElementList) {
        if (formElement instanceof GWTTextArea) {
            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formElement.getName());
            TextArea textArea = (TextArea) hPanel.getWidget(0);
            ((GWTTextArea) formElement).setValue(textArea.getText());
        } else if (formElement instanceof GWTInput) {
            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formElement.getName());
            TextBox textBox = (TextBox) hPanel.getWidget(0);
            ((GWTInput) formElement).setValue(textBox.getText());

            // note that date is added by click handler in drawform method
            if (((GWTInput) formElement).getType().equals(GWTInput.TYPE_FOLDER)) {
                // Must be updated folder in GWTInput because must be drawn
                GWTFolder folder = new GWTFolder();
                folder.setPath(textBox.getText());
                ((GWTInput) formElement).setFolder(folder);
            }
        } else if (formElement instanceof GWTSuggestBox) {
            HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formElement.getName());
            HTML hiddenKey = (HTML) hPanel.getWidget(1);
            GWTSuggestBox suggestBox = (GWTSuggestBox) formElement;
            suggestBox.setValue(hiddenKey.getHTML());
            updateSuggestBoxTextValue(suggestBox);
        } else if (formElement instanceof GWTCheckBox) {
            CheckBox checkbox = (CheckBox) hWidgetProperties.get(formElement.getName());
            ((GWTCheckBox) formElement).setValue(checkbox.getValue());
        } else if (formElement instanceof GWTSelect) {
            GWTSelect gwtSelect = (GWTSelect) formElement;

            if (gwtSelect.getType().equals(GWTSelect.TYPE_SIMPLE)) {
                HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formElement.getName());
                ListBox listBox = (ListBox) hPanel.getWidget(0);
                String selectedValue = "";

                if (listBox.getSelectedIndex() > 0) {
                    selectedValue = listBox.getValue(listBox.getSelectedIndex());
                }

                for (Iterator<GWTOption> itOptions = gwtSelect.getOptions().iterator(); itOptions.hasNext();) {
                    GWTOption option = itOptions.next();
                    if (option.getValue().equals(selectedValue)) {
                        option.setSelected(true);
                    } else {
                        option.setSelected(false);
                    }
                }
            } else if (gwtSelect.getType().equals(GWTSelect.TYPE_MULTIPLE)) {
                HorizontalPanel hPanel = (HorizontalPanel) hWidgetProperties.get(formElement.getName());
                FlexTable tableMulti = (FlexTable) hPanel.getWidget(0);

                // Disables all options
                for (Iterator<GWTOption> itOptions = gwtSelect.getOptions().iterator(); itOptions.hasNext();) {
                    itOptions.next().setSelected(false);
                }

                // Enables options
                if (tableMulti.getRowCount() > 0) {
                    for (int i = 0; i < tableMulti.getRowCount(); i++) {
                        String selectedValue = tableMulti.getText(i, 0);
                        for (Iterator<GWTOption> itOptions = gwtSelect.getOptions().iterator(); itOptions
                                .hasNext();) {
                            GWTOption option = itOptions.next();
                            if (option.getValue().equals(selectedValue)) {
                                option.setSelected(true);
                            }
                        }
                    }
                }
            }
        } else if (formElement instanceof GWTUpload) {
            // Nothing to be done here, upload files are updated in file upload widget
        } else if (formElement instanceof GWTText) {
            // Nothing to be done here
        } else if (formElement instanceof GWTSeparator) {
            // Nothing to be done here
        } else if (formElement instanceof GWTDownload) {
            // Nothing to be done here
        } else if (formElement instanceof GWTPrint) {
            // Nothing to be done here
        }
    }

    return formElementList;
}

From source file:com.ikon.frontend.client.widget.searchresult.SearchFullResult.java

License:Open Source License

/**
 * addPropertyGroups//  w w w.j a  v a  2  s.co m
 * 
 * @param path
 * @param table
 * @return
 */
private int addPropertyGroups(final String path, FlexTable table) {
    int rows = table.getRowCount();
    if (Main.get().mainPanel.search.searchBrowser.searchIn.searchControl.showPropertyGroups.getValue()) {
        final HorizontalPanel propertyGroupsPanel = new HorizontalPanel();
        table.setWidget(rows++, 0, propertyGroupsPanel);
        propertyGroupService.getGroups(path, new AsyncCallback<List<GWTPropertyGroup>>() {
            @Override
            public void onSuccess(List<GWTPropertyGroup> result) {
                drawPropertyGroups(path, result, propertyGroupsPanel);
            }

            @Override
            public void onFailure(Throwable caught) {
                Main.get().showError("getGroups", caught);
            }
        });
    }
    return rows;
}

From source file:com.ikon.frontend.client.widget.searchresult.SearchFullResult.java

License:Open Source License

/**
 * drawCategoriesKeywords//from   w  ww  . java  2s  .  com
 * 
 * @param categories
 * @param keywords
 * @param table
 * @return
 */
private int addCategoriesKeywords(Set<GWTFolder> categories, Set<String> keywords, FlexTable table) {
    int rows = table.getRowCount();
    // Categories and tagcloud
    if (categories.size() > 0 || keywords.size() > 0) {
        HorizontalPanel hPanel = new HorizontalPanel();
        hPanel.setStyleName("okm-NoWrap");
        if (categories.size() > 0) {
            FlexTable tableSubscribedCategories = new FlexTable();
            tableSubscribedCategories.setStyleName("okm-DisableSelect");
            // Sets the document categories
            for (Iterator<GWTFolder> it = categories.iterator(); it.hasNext();) {
                drawCategory(tableSubscribedCategories, it.next());
            }
            hPanel.add(new HTML("<b>" + Main.i18n("document.categories") + "</b>"));
            hPanel.add(Util.hSpace("5"));
            hPanel.add(tableSubscribedCategories);
            hPanel.add(Util.hSpace("33"));
        }
        if (keywords.size() > 0) {
            // Tag cloud
            TagCloud keywordsCloud = new TagCloud();
            keywordsCloud.setWidth("350");
            WidgetUtil.drawTagCloud(keywordsCloud, keywords);
            hPanel.add(new HTML("<b>" + Main.i18n("document.keywords.cloud") + "</b>"));
            hPanel.add(Util.hSpace("5"));
            hPanel.add(keywordsCloud);
        }
        table.setWidget(rows++, 0, hPanel);
    }
    return rows;
}

From source file:com.ikon.frontend.client.widget.searchresult.SearchFullResult.java

License:Open Source License

/**
 * drawCategory//from   w ww  . ja  v a2s  . c om
 * 
 * @param category
 */
private void drawCategory(final FlexTable tableSubscribedCategories, final GWTFolder category) {
    int row = tableSubscribedCategories.getRowCount();
    Anchor anchor = new Anchor();

    // Looks if must change icon on parent if now has no childs and properties with user security atention
    String path = category.getPath().substring(16); // Removes /openkm:categories

    if (category.isHasChildren()) {
        anchor.setHTML(Util.imageItemHTML("img/menuitem_childs.gif", path, "top"));
    } else {
        anchor.setHTML(Util.imageItemHTML("img/menuitem_empty.gif", path, "top"));
    }

    anchor.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent arg0) {
            CommonUI.openPath(category.getPath(), null);
        }
    });

    anchor.setStyleName("okm-KeyMap-ImageHover");
    tableSubscribedCategories.setWidget(row, 0, anchor);
}

From source file:com.konakart.client.KKBaseWin.java

License:Open Source License

/**
 * Utility method to clear a flex table/* w w  w. j av  a  2 s  . co  m*/
 * 
 * @param ft
 */
protected void clearTable(FlexTable ft) {
    if (ft != null) {
        int numRows = ft.getRowCount();

        for (int i = numRows - 1; i > -1; i--) {
            ft.removeRow(i);
        }
    }
}

From source file:com.nanosim.client.content.tables.CwFlexTable.java

License:Apache License

/**
 * Add a row to the flex table.//from w w w . j  a  va2 s .  c  om
 */
@NanosimSource
private void addRow(FlexTable flexTable) {
    int numRows = flexTable.getRowCount();
    flexTable.setWidget(numRows, 0, Nanosim.images.logo().createImage());
    flexTable.setWidget(numRows, 1, Nanosim.images.logo().createImage());
    flexTable.getFlexCellFormatter().setRowSpan(0, 1, numRows + 1);
}

From source file:com.nanosim.client.content.tables.CwFlexTable.java

License:Apache License

/**
 * Remove a row from the flex table.//  www  .  j a v  a 2s . c om
 */
@NanosimSource
private void removeRow(FlexTable flexTable) {
    int numRows = flexTable.getRowCount();
    if (numRows > 1) {
        flexTable.removeRow(numRows - 1);
        flexTable.getFlexCellFormatter().setRowSpan(0, 1, numRows - 1);
    }
}

From source file:com.openkm.frontend.client.widget.dashboard.keymap.KeyMapTable.java

License:Open Source License

/**
 * Adding document row/*from ww w.j  av  a2s  .c  o m*/
 * 
 * @param gwtQueryResult Query result
 * @param score Document score
 */
private void addDocumentRow(GWTQueryResult gwtQueryResult, Score score) {
    Collection<String> selectedKeyList = Main.get().mainPanel.dashboard.keyMapDashboard.getFiltering();
    int rows = table.getRowCount();
    int firstRow = rows;

    firtRowList.add("" + firstRow);
    GWTDocument doc = new GWTDocument();

    if (gwtQueryResult.getDocument() != null) {
        doc = gwtQueryResult.getDocument();
    } else if (gwtQueryResult.getAttachment() != null) {
        doc = gwtQueryResult.getAttachment();
    }

    final String docPath = doc.getPath();
    Image gotoDocument = new Image("img/icon/actions/goto_document.gif");
    gotoDocument.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            CommonUI.openPath(Util.getParent(docPath), docPath);
        }

    });
    gotoDocument.setTitle(Main.i18n("dashboard.keyword.goto.document"));
    gotoDocument.setStyleName("okm-KeyMap-ImageHover");
    table.setWidget(rows, 0, gotoDocument);

    if (doc.isAttachment()) {
        SimplePanel sp = new SimplePanel(); // Solves some middle alignament problem derived from mimeImageHTML method
        sp.add(new HTML(Util.imageItemHTML("img/email_attach.gif") + Util.mimeImageHTML(doc.getMimeType())));
        table.setWidget(rows, 1, sp);
    } else {
        SimplePanel sp = new SimplePanel(); // Solves some middle alignament problem derived from mimeImageHTML method
        sp.add(new HTML(Util.mimeImageHTML(doc.getMimeType())));
        table.setWidget(rows, 1, sp);
    }
    Hyperlink hLink = new Hyperlink();
    hLink.setHTML(doc.getName());

    // On attachment case must remove last folder path, because it's internal usage not for visualization
    if (doc.isAttachment()) {
        hLink.setTitle(doc.getParentPath().substring(0, doc.getParentPath().lastIndexOf("/")));
    } else {
        hLink.setTitle(doc.getParentPath());
    }

    table.setWidget(rows, 2, hLink);

    // Format
    table.getCellFormatter().setHorizontalAlignment(rows, 0, HasAlignment.ALIGN_CENTER);
    table.getCellFormatter().setHorizontalAlignment(rows, 1, HasAlignment.ALIGN_RIGHT);
    table.getCellFormatter().setHorizontalAlignment(rows, 2, HasAlignment.ALIGN_LEFT);
    table.getCellFormatter().setVerticalAlignment(rows, 0, HasAlignment.ALIGN_MIDDLE);
    table.getCellFormatter().setVerticalAlignment(rows, 0, HasAlignment.ALIGN_MIDDLE);
    table.getCellFormatter().setVerticalAlignment(rows, 2, HasAlignment.ALIGN_MIDDLE);
    table.getFlexCellFormatter().setWidth(rows, 0, "24");
    table.getFlexCellFormatter().setWidth(rows, 1, "47");

    for (int i = 0; i < 2; i++) {
        table.getCellFormatter().addStyleName(rows, i, "okm-DisableSelect");
    }

    // Writing detail
    rows++; // Next row line
    FlexTable tableDocument = new FlexTable();
    FlexTable tableProperties = new FlexTable();
    FlexTable tableSubscribedUsers = new FlexTable();
    tableDocument.setWidget(0, 0, tableProperties);
    tableDocument.setHTML(0, 1, "");
    tableDocument.setWidget(0, 2, tableSubscribedUsers);
    tableDocument.getFlexCellFormatter().setVerticalAlignment(0, 0, HasAlignment.ALIGN_TOP);
    tableDocument.getFlexCellFormatter().setVerticalAlignment(0, 2, HasAlignment.ALIGN_TOP);
    tableDocument.getCellFormatter().setWidth(0, 0, "75%");
    tableDocument.getCellFormatter().setWidth(0, 1, "25");
    tableDocument.getCellFormatter().setWidth(0, 2, "25%");

    tableDocument.setWidth("100%");
    table.setWidget(rows, 0, tableDocument);
    table.getFlexCellFormatter().setColSpan(rows, 0, 3);
    table.getCellFormatter().setHorizontalAlignment(rows, 0, HasHorizontalAlignment.ALIGN_LEFT);

    tableDocument.setStyleName("okm-DisableSelect");
    tableProperties.setStyleName("okm-DisableSelect");
    tableSubscribedUsers.setStyleName("okm-DisableSelect");

    tableProperties.setHTML(0, 0, "<b>" + Main.i18n("document.folder") + "</b>");
    tableProperties.setHTML(0, 1, doc.getParentPath());
    tableProperties.setHTML(1, 0, "<b>" + Main.i18n("document.size") + "</b>");
    tableProperties.setHTML(1, 1, Util.formatSize(doc.getActualVersion().getSize()));
    tableProperties.setHTML(2, 0, "<b>" + Main.i18n("document.created") + "</b>");
    DateTimeFormat dtf = DateTimeFormat.getFormat(Main.i18n("general.date.pattern"));
    tableProperties.setHTML(2, 1,
            dtf.format(doc.getCreated()) + " " + Main.i18n("document.by") + " " + doc.getAuthor());
    tableProperties.setHTML(3, 0, "<b>" + Main.i18n("document.lastmodified") + "</b>");
    tableProperties.setHTML(3, 1, dtf.format(doc.getLastModified()) + " " + Main.i18n("document.by") + " "
            + doc.getActualVersion().getAuthor());
    tableProperties.setHTML(4, 0, "<b>" + Main.i18n("document.mimetype") + "</b>");
    tableProperties.setHTML(4, 1, doc.getMimeType());
    tableProperties.setHTML(5, 0, "<b>" + Main.i18n("document.status") + "</b>");
    if (doc.isCheckedOut()) {
        tableProperties.setHTML(5, 1,
                Main.i18n("document.status.checkout") + " " + doc.getLockInfo().getOwner());
    } else if (doc.isLocked()) {
        tableProperties.setHTML(5, 1, Main.i18n("document.status.locked") + " " + doc.getLockInfo().getOwner());
    } else {
        tableProperties.setHTML(5, 1, Main.i18n("document.status.normal"));
    }
    tableProperties.setHTML(6, 0, "<b>" + Main.i18n("document.subscribed") + "</b>");
    if (doc.isSubscribed()) {
        tableProperties.setHTML(6, 1, Main.i18n("document.subscribed.yes"));
    } else {
        tableProperties.setHTML(6, 1, Main.i18n("document.subscribed.no"));
    }

    // Sets wordWrap for al rows
    for (int i = 0; i < 7; i++) {
        setRowWordWarp(i, 2, false, tableProperties);
    }

    // Setting subscribers
    tableSubscribedUsers.setHTML(0, 0, "<b>" + Main.i18n("document.subscribed.users") + "<b>");
    setRowWordWarp(0, 1, false, tableSubscribedUsers);

    // Sets the folder subscribers
    for (GWTUser subscriptor : doc.getSubscriptors()) {
        tableSubscribedUsers.setHTML(tableSubscribedUsers.getRowCount(), 0, subscriptor.getUsername());
        setRowWordWarp(tableSubscribedUsers.getRowCount() - 1, 1, false, tableSubscribedUsers);
    }

    HorizontalPanel hKeyPanel = addKeywords(table, doc.getKeywords(), selectedKeyList); // Drawing keywords

    // Setting visibility
    switch (visibleStatus) {
    case VISIBLE_SMALL:
        tableDocument.setVisible(false);
        hKeyPanel.setVisible(false);
        table.getCellFormatter().addStyleName(firstRow, 0, "okm-Table-BottomBorder");
        table.getCellFormatter().addStyleName(firstRow, 1, "okm-Table-BottomBorder");
        table.getCellFormatter().addStyleName(firstRow, 2, "okm-Table-BottomBorder");
        break;
    case VISIBLE_MEDIUM:
        tableDocument.setVisible(false);
        hKeyPanel.setVisible(true);
        break;
    case VISIBLE_BIG:
        tableDocument.setVisible(true);
        hKeyPanel.setVisible(true);
        break;
    }

    // Saving object for refreshing language and setting visible ( true / false )
    tableDocumentList.add(tableDocument);
    hKeyPanelList.add(hKeyPanel);
}