Example usage for com.google.gwt.user.client Window open

List of usage examples for com.google.gwt.user.client Window open

Introduction

In this page you can find the example usage for com.google.gwt.user.client Window open.

Prototype

public static void open(String url, String name, String features) 

Source Link

Usage

From source file:com.openkm.frontend.client.panel.ExtendedDockPanel.java

License:Open Source License

/**
 * enableKeyShorcuts/*from  ww  w.  j ava2 s.co  m*/
 */
public void enableKeyShorcuts() {
    // Log.debug("ExtendedDockPanel enableKeyShortcuts");
    dockPanel.sinkEvents(Event.KEYEVENTS);
    handlerRegistration = Event.addNativePreviewHandler(new NativePreviewHandler() {
        @Override
        public void onPreviewNativeEvent(NativePreviewEvent event) {
            boolean propagate = true;
            int type = event.getTypeInt();
            if (type == Event.ONKEYDOWN) {
                int keyCode = event.getNativeEvent().getKeyCode();
                switch (keyCode) {
                case Keyboard.KEY_F2:
                    if (actualView == UIDockPanelConstants.DESKTOP
                            && Main.get().activeFolderTree.isPanelSelected()
                            && Main.get().mainPanel.topPanel.toolBar.getToolBarOption().renameOption
                            && (Main.get().mainPanel.desktop.navigator
                                    .getStackIndex() == UIDesktopConstants.NAVIGATOR_TAXONOMY
                                    || Main.get().mainPanel.desktop.navigator
                                            .getStackIndex() == UIDesktopConstants.NAVIGATOR_PERSONAL
                                    || Main.get().mainPanel.desktop.navigator
                                            .getStackIndex() == UIDesktopConstants.NAVIGATOR_TEMPLATES
                                    || Main.get().mainPanel.desktop.navigator
                                            .getStackIndex() == UIDesktopConstants.NAVIGATOR_CATEGORIES
                                    || Main.get().mainPanel.desktop.navigator
                                            .getStackIndex() == UIDesktopConstants.NAVIGATOR_MAIL)) {

                        Main.get().mainPanel.topPanel.toolBar.executeRename();
                        propagate = false;
                    } else if (Main.get().mainPanel.topPanel.toolBar.getToolBarOption().renameOption
                            && (Main.get().mainPanel.desktop.browser.fileBrowser.isDocumentSelected()
                                    || Main.get().mainPanel.desktop.browser.fileBrowser.isFolderSelected()
                                    || Main.get().mainPanel.desktop.browser.fileBrowser.isMailSelected())) {

                        Main.get().mainPanel.topPanel.toolBar.executeRename();
                        propagate = false;
                    }
                    break;

                // case Keyboard.KEY_SUPR:
                // if (actualView == UIDockPanelConstants.DESKTOP &&
                // Main.get().activeFolderTree.isPanelSelected() &&
                // Main.get().mainPanel.topPanel.toolBar.getToolBarOption().deleteOption &&
                // (Main.get().mainPanel.desktop.navigator.getStackIndex()==UIDesktopConstants.NAVIGATOR_TAXONOMY
                // ||
                // Main.get().mainPanel.desktop.navigator.getStackIndex()==UIDesktopConstants.NAVIGATOR_CATEGORIES
                // ||
                // Main.get().mainPanel.desktop.navigator.getStackIndex()==UIDesktopConstants.NAVIGATOR_PERSONAL
                // ||
                // Main.get().mainPanel.desktop.navigator.getStackIndex()==UIDesktopConstants.NAVIGATOR_TEMPLATES
                // ||
                // Main.get().mainPanel.desktop.navigator.getStackIndex()==UIDesktopConstants.NAVIGATOR_MAIL)) {
                //
                // Main.get().mainPanel.topPanel.toolBar.executeDelete();
                // propagate = false;
                // } else if (Main.get().mainPanel.topPanel.toolBar.getToolBarOption().deleteOption && (
                // Main.get().mainPanel.desktop.browser.fileBrowser.isDocumentSelected() ||
                // Main.get().mainPanel.desktop.browser.fileBrowser.isFolderSelected() ||
                // Main.get().mainPanel.desktop.browser.fileBrowser.isMailSelected())) {
                //
                // Main.get().mainPanel.topPanel.toolBar.executeDelete();
                // propagate = false;
                // }
                // break;

                case Keyboard.KEY_C:
                case Keyboard.KEY_X:
                    // Case CTRL + SHIFT + C
                    if (event.getNativeEvent().getCtrlKey() && event.getNativeEvent().getShiftKey()) {
                        if (actualView == UIDockPanelConstants.DESKTOP
                                && Main.get().activeFolderTree.isPanelSelected()
                                && Main.get().mainPanel.topPanel.toolBar.getToolBarOption().copyOption
                                && (Main.get().mainPanel.desktop.navigator
                                        .getStackIndex() == UIDesktopConstants.NAVIGATOR_TAXONOMY
                                        || Main.get().mainPanel.desktop.navigator
                                                .getStackIndex() == UIDesktopConstants.NAVIGATOR_PERSONAL
                                        || Main.get().mainPanel.desktop.navigator
                                                .getStackIndex() == UIDesktopConstants.NAVIGATOR_TEMPLATES
                                        || Main.get().mainPanel.desktop.navigator
                                                .getStackIndex() == UIDesktopConstants.NAVIGATOR_MAIL)) {

                            // Saves folder to be copied
                            GWTFolder folder = Main.get().activeFolderTree.getFolder();
                            folderSelectPopup.setEntryPoint(FolderSelectPopup.ENTRYPOINT_KEYBOARD);
                            switch (keyCode) {
                            case Keyboard.KEY_C:
                                folderSelectPopup.setToCopy(folder);
                                Main.get().mainPanel.bottomPanel.setStatus("status.folder.copied", false);
                                break;
                            case Keyboard.KEY_X:
                                Main.get().mainPanel.bottomPanel.setStatus("status.folder.cut", false);
                                // Sets the origin panel an treitem to be removed after move
                                folderSelectPopup
                                        .setOriginPanel(Main.get().mainPanel.desktop.navigator.getStackIndex());
                                TreeItem actualItem = Main.get().activeFolderTree.getActualItem();
                                folderSelectPopup.setTreeItemToBeDeleted(actualItem);
                                folderSelectPopup.setToMove(folder);

                                break;
                            }
                            propagate = false;

                        } else if (Main.get().mainPanel.topPanel.toolBar.getToolBarOption().copyOption
                                && (Main.get().mainPanel.desktop.browser.fileBrowser.isDocumentSelected()
                                        || Main.get().mainPanel.desktop.browser.fileBrowser.isFolderSelected()
                                        || Main.get().mainPanel.desktop.browser.fileBrowser.isMailSelected())) {

                            // Saves the document or folder to be copied
                            folderSelectPopup.setEntryPoint(FolderSelectPopup.ENTRYPOINT_KEYBOARD);
                            if (Main.get().mainPanel.desktop.browser.fileBrowser.isDocumentSelected()) {
                                GWTDocument document = Main.get().mainPanel.desktop.browser.fileBrowser
                                        .getDocument();
                                switch (keyCode) {
                                case Keyboard.KEY_C:
                                    Main.get().mainPanel.bottomPanel.setStatus("status.document.copied", false);
                                    folderSelectPopup.setToCopy(document);
                                    break;
                                case Keyboard.KEY_X:
                                    Main.get().mainPanel.bottomPanel.setStatus("status.document.cut", false);
                                    folderSelectPopup.setToMove(document);
                                    break;
                                }
                            } else if (Main.get().mainPanel.desktop.browser.fileBrowser.isMailSelected()) {
                                GWTMail mail = Main.get().mainPanel.desktop.browser.fileBrowser.getMail();
                                switch (keyCode) {
                                case Keyboard.KEY_C:
                                    Main.get().mainPanel.bottomPanel.setStatus("status.document.copied", false);
                                    folderSelectPopup.setToCopy(mail);
                                    break;
                                case Keyboard.KEY_X:
                                    Main.get().mainPanel.bottomPanel.setStatus("status.document.cut", false);
                                    folderSelectPopup.setToMove(mail);
                                    break;
                                }
                            } else {
                                GWTFolder folder = Main.get().mainPanel.desktop.browser.fileBrowser.getFolder();
                                switch (keyCode) {
                                case Keyboard.KEY_C:
                                    Main.get().mainPanel.bottomPanel.setStatus("status.folder.copied", false);
                                    folderSelectPopup.setToCopy(folder);
                                    break;
                                case Keyboard.KEY_X:
                                    Main.get().mainPanel.bottomPanel.setStatus("status.folder.cut", false);
                                    // Sets the origin panel and treeitem to be removed after move
                                    folderSelectPopup.setOriginPanel(
                                            Main.get().mainPanel.desktop.navigator.getStackIndex());
                                    TreeItem actualItem = Main.get().activeFolderTree
                                            .getChildFolder(folder.getPath());
                                    folderSelectPopup.setTreeItemToBeDeleted(actualItem);
                                    folderSelectPopup.setToMove(folder);
                                    break;
                                }
                            }
                            propagate = false;
                        }
                    }
                    break;

                case Keyboard.KEY_V:
                    // Case CTRL + SHIFT + V
                    if (event.getNativeEvent().getCtrlKey() && event.getNativeEvent().getShiftKey()
                            && (folderSelectPopup.getAction() == FolderSelectPopup.ACTION_COPY
                                    || folderSelectPopup.getAction() == FolderSelectPopup.ACTION_MOVE)) {

                        // Destination folder is always selected by tree
                        if (actualView == UIDockPanelConstants.DESKTOP
                                && Main.get().activeFolderTree.isPanelSelected()
                                && (Main.get().mainPanel.desktop.navigator
                                        .getStackIndex() == UIDesktopConstants.NAVIGATOR_TAXONOMY
                                        || Main.get().mainPanel.desktop.navigator
                                                .getStackIndex() == UIDesktopConstants.NAVIGATOR_PERSONAL
                                        || Main.get().mainPanel.desktop.navigator
                                                .getStackIndex() == UIDesktopConstants.NAVIGATOR_TEMPLATES
                                        || Main.get().mainPanel.desktop.navigator
                                                .getStackIndex() == UIDesktopConstants.NAVIGATOR_MAIL)) {

                            // Evaluates destination folder grant to copy
                            GWTFolder folder = Main.get().activeFolderTree.getFolder();
                            if (folderSelectPopup.evaluateActionSecurity(folder)) {
                                Main.get().mainPanel.bottomPanel.resetStatus();
                                folderSelectPopup.executeAction(folder.getPath(), true);
                            }
                        }
                        propagate = false;
                    }
                    break;

                case Keyboard.KEY_D:
                    // Case CTRL + D
                    if (event.getNativeEvent().getCtrlKey() && actualView == UIDockPanelConstants.DESKTOP
                            && Main.get().mainPanel.topPanel.toolBar.getToolBarOption().downloadOption) {
                        Main.get().mainPanel.topPanel.toolBar.executeDownload();
                        propagate = false;
                    }
                    break;

                case Keyboard.KEY_T:
                    // Case CTRL+T
                    if (event.getNativeEvent().getCtrlKey()) {
                        Main.get().testPopup.center();
                    }
                    break;

                case Keyboard.KEY_Z:
                    // Case CTRL+Z
                    if (event.getNativeEvent().getCtrlKey()) {
                        if (Log.getCurrentLogLevel() == Log.LOG_LEVEL_DEBUG) {
                            Log.setCurrentLogLevel(Log.LOG_LEVEL_OFF);
                            Main.get().mainPanel.bottomPanel.setStatus("status.debug.disabled", false);
                        } else {
                            Log.setCurrentLogLevel(Log.LOG_LEVEL_DEBUG);
                            Main.get().mainPanel.bottomPanel.setStatus("status.debug.enabled", false);
                        }

                        propagate = false;
                    }
                    break;

                case Keyboard.KEY_N:
                    // Case CTRL + N
                    if (event.getNativeEvent().getCtrlKey() && actualView == UIDockPanelConstants.DESKTOP
                            && Main.get().mainPanel.topPanel.toolBar.getToolBarOption().createFolderOption) {
                        Main.get().mainPanel.topPanel.toolBar.executeFolderDirectory();
                        propagate = false;
                    }
                    break;

                case Keyboard.KEY_F5:
                    if (actualView == UIDockPanelConstants.DESKTOP
                            && Main.get().mainPanel.topPanel.toolBar.getToolBarOption().refreshOption) {
                        Main.get().mainPanel.topPanel.toolBar.executeRefresh();
                        propagate = false;
                    }
                    break;

                case Keyboard.KEY_INSERT:
                    if (actualView == UIDockPanelConstants.DESKTOP
                            && Main.get().mainPanel.topPanel.toolBar.getToolBarOption().addDocumentOption) {
                        Main.get().mainPanel.topPanel.toolBar.executeAddDocument();
                        propagate = false;
                    }
                    break;

                case Keyboard.KEY_B:
                    // Case ALT + B
                    if (event.getNativeEvent().getAltKey()
                            && Main.get().mainPanel.topPanel.mainMenu.getToolBarOption().homeOption) {
                        Main.get().mainPanel.topPanel.mainMenu.manageBookmarkPopup.showPopup();
                        propagate = false;
                    }
                    break;

                case Keyboard.KEY_F1:
                    Window.open(MainMenu.URI_DOCUMENTATION, "_blank", "");
                    propagate = false;
                    break;

                case Keyboard.KEY_Q:
                    // Case CTRL + ALT + Q
                    if (event.getNativeEvent().getCtrlKey() && event.getNativeEvent().getAltKey()) {
                        Main.get().logoutPopup.logout();
                    }
                    break;

                //                  case Keyboard.KEY_DOWN:
                //                     if (isFilebrowserKeyEnabled()) {
                //                         Main.get().mainPanel.desktop.browser.fileBrowser.table.selectDown();
                //                     }
                //                     break;
                //                  
                //                  case Keyboard.KEY_UP:
                //                     if (isFilebrowserKeyEnabled()) {
                //                         Main.get().mainPanel.desktop.browser.fileBrowser.table.selectUp();
                //                     }
                //                     break;
                }
            }

            // Not propagates event to the browser
            if (!propagate) {
                DOM.eventPreventDefault((Event) event.getNativeEvent());
            }
        }
    });
}

From source file:com.openkm.frontend.client.widget.ErrorPopup.java

License:Open Source License

public void onClick(ClickEvent event) {
    Log.debug("onClick(" + event + ")");
    hide();/*from  w  w  w.  j  a  v  a 2  s .  c om*/
    // Removes all previous text for next errors messages, varios errors can be added simultanealy
    // on show(String msg )
    text.setText("");

    if (logout) {
        Log.debug("onClick: redirect");
        Window.open("index.jsp", "_self", "");
    }

    Log.debug("onClick: void");
}

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

License:Open Source License

/**
 * drawFormElement/* w  w w.jav  a2 s . c  om*/
 */
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 || isMassiveView) {
            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);
                    propertyHandler.propertyRemoved();
                }
            });

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

            if (propertyHandler != null) {
                textArea.addKeyUpHandler(new KeyUpHandler() {
                    @Override
                    public void onKeyUp(KeyUpEvent event) {
                        propertyHandler.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 (propertyHandler != null) {
                        propertyHandler.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.createClipboardButton(containerName, url);
            } 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, propertyHandler);
                }
            });

            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 || isMassiveView) {
            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 (propertyHandler != null) {
                                propertyHandler.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);
                    propertyHandler.propertyRemoved();
                }
            });
            removeImage.addStyleName("okm-Hyperlink");
            table.setWidget(row, 2, removeImage);
            table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

            if (propertyHandler != null) {
                textBox.addKeyUpHandler(new KeyUpHandler() {
                    @Override
                    public void onKeyUp(KeyUpEvent event) {
                        propertyHandler.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, propertyHandler);
                    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 || isMassiveView) {
            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);
                    propertyHandler.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 || isMassiveView) {
            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);
                    propertyHandler.propertyRemoved();
                }
            });
            removeImage.addStyleName("okm-Hyperlink");
            table.setWidget(row, 2, removeImage);
            table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

            if (propertyHandler != null) {
                checkBox.addClickHandler(new ClickHandler() {
                    @Override
                    public void onClick(ClickEvent event) {
                        propertyHandler.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();
                }
            }

            // Mark suggested
            if (!gwtSelect.getSuggestion().equals("")) {
                NodeList<Element> nodeList = listBox.getElement().getElementsByTagName("option");
                int count = 1; // 0 is empty value
                for (GWTOption option : gwtSelect.getOptions()) {
                    if (nodeList.getLength() < (count)) {
                        break;
                    }
                    if (option.isSuggested()) {
                        nodeList.getItem(count).setClassName("okm-Option-Suggested");
                    } else {
                        nodeList.getItem(count).setClassName("okm-Option");
                    }
                    count++;
                }
            }

            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 || isMassiveView) {
                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);
                        propertyHandler.propertyRemoved();
                    }
                });
                removeImage.addStyleName("okm-Hyperlink");
                table.setWidget(row, 2, removeImage);
                table.getCellFormatter().setVerticalAlignment(row, 2, HasAlignment.ALIGN_TOP);

                if (propertyHandler != null) {
                    listBox.addChangeHandler(new ChangeHandler() {
                        @Override
                        public void onChange(ChangeEvent event) {
                            propertyHandler.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 (propertyHandler != null) {
                                    propertyHandler.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 (propertyHandler != null) {
                            propertyHandler.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 (propertyHandler != null) {
                                propertyHandler.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());
                }
            }

            // Mark suggested
            if (!gwtSelect.getSuggestion().equals("")) {
                NodeList<Element> nodeList = listMulti.getElement().getElementsByTagName("option");
                int count = 1; // 0 is empty value
                for (GWTOption option : gwtSelect.getOptions()) {
                    // In list only are shown not selected items
                    if (!option.isSelected()) {
                        if (nodeList.getLength() < (count)) {
                            break;
                        }
                        if (option.isSuggested()) {
                            nodeList.getItem(count).setClassName("okm-Option-Suggested");
                        } else {
                            nodeList.getItem(count).setClassName("okm-Option");
                        }
                        count++;
                    }
                }
            }

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

            if (searchView || isMassiveView) {
                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);
                        propertyHandler.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) {
                                    CommonUI.openPath(Util.getParent(docPath), 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) {
                        Util.print(node.getUuid());
                    }
                });
            } 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) {
                                Util.print(uuid);
                            }
                        });
                    }

                    @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.openkm.frontend.client.widget.properties.MailViewer.java

License:Open Source License

/**
 * Sets the mail values/*from   ww w . j  av  a  2  s .co m*/
 * 
 * @param mail The document object
 */
public void set(GWTMail mail) {
    this.mail = mail;

    Anchor hFrom = new Anchor();
    final String mailFrom = mail.getFrom().contains("<")
            ? mail.getFrom().substring(mail.getFrom().indexOf("<") + 1, mail.getFrom().indexOf(">"))
            : mail.getFrom();
    hFrom.setHTML(mail.getFrom().replace("<", "&lt;").replace(">", "&gt;"));
    hFrom.setTitle("mailto:" + mailFrom);
    hFrom.setStyleName("okm-Mail-Link");
    hFrom.addStyleName("okm-NoWrap");
    hFrom.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            Window.open("mailto:" + mailFrom, "_self", "");
        }
    });
    dataTable.setWidget(0, 1, hFrom);

    VerticalPanel replyPanel = new VerticalPanel();
    for (int i = 0; i < mail.getReply().length; i++) {
        Anchor hReply = new Anchor();
        final String mailReply = mail.getReply()[i].contains("<") ? mail.getReply()[i].substring(
                mail.getReply()[i].indexOf("<") + 1, mail.getReply()[i].indexOf(">")) : mail.getReply()[i];
        hReply.setHTML(mail.getReply()[i].replace("<", "&lt;").replace(">", "&gt;"));
        hReply.setTitle("mailto:" + mailReply);
        hReply.setStyleName("okm-Mail-Link");
        hReply.addStyleName("okm-NoWrap");
        hReply.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                Window.open("mailto:" + mailReply, "_self", "");
            }
        });
        replyPanel.add(hReply);
    }
    dataTable.setWidget(1, 1, replyPanel);

    VerticalPanel toPanel = new VerticalPanel();
    for (int i = 0; i < mail.getTo().length; i++) {
        Anchor hTo = new Anchor();
        final String mailTo = mail.getTo()[i].contains("<")
                ? mail.getTo()[i].substring(mail.getTo()[i].indexOf("<") + 1, mail.getTo()[i].indexOf(">"))
                : mail.getTo()[i];
        hTo.setHTML(mail.getTo()[i].replace("<", "&lt;").replace(">", "&gt;"));
        hTo.setTitle("mailto:" + mailTo);
        hTo.setStyleName("okm-Mail-Link");
        hTo.addStyleName("okm-NoWrap");
        hTo.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                Window.open("mailto:" + mailTo, "_self", "");
            }
        });
        toPanel.add(hTo);
    }
    dataTable.setWidget(2, 1, toPanel);

    dataTable.setHTML(3, 1, mail.getSubject());
    mailPreview.showContent(mail);

    // Enable select
    dataTable.getFlexCellFormatter().setStyleName(0, 1, "okm-EnableSelect");
    dataTable.getFlexCellFormatter().setStyleName(1, 1, "okm-EnableSelect");
    dataTable.getFlexCellFormatter().setStyleName(2, 1, "okm-EnableSelect");
    dataTable.getFlexCellFormatter().setStyleName(3, 1, "okm-EnableSelect");

    attachmentsTable.removeAllRows();
    attachmentsList = new HashMap<Integer, GWTDocument>();
    int count = 0;

    for (Iterator<GWTDocument> it = mail.getAttachments().iterator(); it.hasNext();) {
        final GWTDocument attach = it.next();
        attachmentsList.put(new Integer(count), attach);
        count++;
        Anchor hLink = new Anchor();
        hLink.setHTML(attach.getName());
        hLink.setTitle(attach.getName());
        hLink.setStyleName("okm-Mail-Link");
        hLink.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                Util.downloadFileByUUID(attach.getUuid(), "");
            }
        });
        int row = attachmentsTable.getRowCount();
        attachmentsTable.setHTML(row, 0, Util.mimeImageHTML(attach.getMimeType()));
        attachmentsTable.setWidget(row, 1, hLink);
        attachmentsTable.setHTML(row, 2, Util.formatSize(attach.getActualVersion().getSize()));
        attachmentsTable.getCellFormatter().setHorizontalAlignment(row, 2, HasAlignment.ALIGN_CENTER);
    }
}

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

License:Open Source License

/**
 * Adding mail//  w  w  w.  j  a  va2s. c o  m
 * 
 * @param gwtQueryResult Query result
 * @param score The mail score
 */
private void addMailRow(GWTQueryResult gwtQueryResult, Score score) {
    int rows = table.getRowCount();
    final GWTMail mail = gwtQueryResult.getMail();

    // Mail row
    HorizontalPanel hPanel = new HorizontalPanel();
    hPanel.setStyleName("okm-NoWrap");
    hPanel.add(new HTML(score.getHTML()));
    hPanel.add(Util.hSpace("5"));

    if (mail.getAttachments().size() > 0) {
        hPanel.add(new HTML(Util.imageItemHTML("img/email_attach.gif")));
    } else {
        hPanel.add(new HTML(Util.imageItemHTML("img/email.gif")));
    }

    Anchor anchor = new Anchor();
    anchor.setHTML(mail.getSubject());
    anchor.setTitle(mail.getParentPath());
    anchor.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            String docPath = mail.getPath();
            CommonUI.openPath(Util.getParent(docPath), docPath);
        }
    });
    anchor.setStyleName("okm-Hyperlink");
    hPanel.add(anchor);
    table.setWidget(rows++, 0, hPanel);

    // Mail Subject
    HorizontalPanel hPanel2 = new HorizontalPanel();
    hPanel2.setStyleName("okm-NoWrap");
    hPanel2.add(new HTML("<b>" + Main.i18n("mail.subject") + ":</b>&nbsp;"));
    hPanel2.add(new HTML(mail.getSubject()));

    // Excerpt row
    if ((Main.get().mainPanel.search.searchBrowser.searchIn.searchControl
            .getSearchMode() == SearchControl.SEARCH_MODE_SIMPLE
            || !Main.get().mainPanel.search.searchBrowser.searchIn.searchNormal.content.getText().equals(""))
            && gwtQueryResult.getExcerpt() != null) {
        table.setHTML(rows++, 0,
                "" + gwtQueryResult.getExcerpt() + (gwtQueryResult.getExcerpt().length() > 256 ? " ..." : ""));
        HTML space = new HTML();
        table.setWidget(rows, 0, space);
        table.getFlexCellFormatter().setHeight(rows++, 0, "5");
    }

    // Folder row
    HorizontalPanel hPanel3 = new HorizontalPanel();
    hPanel3.setStyleName("okm-NoWrap");
    hPanel3.add(new HTML("<b>" + Main.i18n("document.folder") + ":</b>&nbsp;"));
    hPanel3.add(drawFolder(mail.getParentPath()));
    table.setWidget(rows++, 0, hPanel3);

    // mail details
    HorizontalPanel hPanel4 = new HorizontalPanel();
    hPanel4.setStyleName("okm-NoWrap");
    hPanel4.add(new HTML("<b>" + Main.i18n("search.result.author") + ":</b>&nbsp;"));
    hPanel4.add(new HTML(mail.getAuthor()));
    hPanel4.add(Util.hSpace("33"));
    hPanel4.add(new HTML("<b>" + Main.i18n("search.result.size") + ":</b>&nbsp;"));
    hPanel4.add(new HTML(Util.formatSize(mail.getSize())));
    hPanel4.add(Util.hSpace("33"));
    hPanel4.add(new HTML("<b>" + Main.i18n("search.result.date.create") + ":&nbsp;</b>"));
    DateTimeFormat dtf = DateTimeFormat.getFormat(Main.i18n("general.date.pattern"));
    hPanel4.add(new HTML(dtf.format(mail.getCreated())));
    table.setWidget(rows++, 0, hPanel4);

    // Categories and tagcloud
    rows = addCategoriesKeywords(mail.getCategories(), mail.getKeywords(), table);

    // PropertyGroups
    rows = addPropertyGroups(mail.getPath(), table);

    // From, To and Reply panel
    HorizontalPanel hPanel5 = new HorizontalPanel();
    hPanel5.setStyleName("okm-NoWrap");
    hPanel5.add(new HTML("<b>" + Main.i18n("mail.from") + ":</b>&nbsp;"));
    hPanel5.add(new HTML(mail.getFrom()));

    if (mail.getTo().length > 0) {
        VerticalPanel toPanel = new VerticalPanel();

        for (int i = 0; i < mail.getTo().length; i++) {
            Anchor hTo = new Anchor();
            final String mailTo = mail.getTo()[i].contains("<")
                    ? mail.getTo()[i].substring(mail.getTo()[i].indexOf("<") + 1, mail.getTo()[i].indexOf(">"))
                    : mail.getTo()[i];
            hTo.setHTML(mail.getTo()[i].replace("<", "&lt;").replace(">", "&gt;"));
            hTo.setTitle("mailto:" + mailTo);
            hTo.setStyleName("okm-Mail-Link");
            hTo.addStyleName("okm-NoWrap");
            hTo.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    Window.open("mailto:" + mailTo, "_self", "");
                }
            });

            toPanel.add(hTo);
        }

        hPanel5.add(Util.hSpace("33"));
        hPanel5.add((new HTML("<b>" + Main.i18n("mail.to") + ":</b>&nbsp;")));
        hPanel5.add(toPanel);
    }

    if (mail.getReply().length > 0) {
        VerticalPanel replyPanel = new VerticalPanel();

        for (int i = 0; i < mail.getReply().length; i++) {
            Anchor hReply = new Anchor();
            final String mailReply = mail.getReply()[i].contains("<") ? mail.getReply()[i].substring(
                    mail.getReply()[i].indexOf("<") + 1, mail.getReply()[i].indexOf(">")) : mail.getReply()[i];
            hReply.setHTML(mail.getReply()[i].replace("<", "&lt;").replace(">", "&gt;"));
            hReply.setTitle("mailto:" + mailReply);
            hReply.setStyleName("okm-Mail-Link");
            hReply.addStyleName("okm-NoWrap");
            hReply.addClickHandler(new ClickHandler() {
                @Override
                public void onClick(ClickEvent event) {
                    Window.open("mailto:" + mailReply, "_self", "");
                }
            });

            replyPanel.add(hReply);
        }

        hPanel5.add(Util.hSpace("33"));
        hPanel5.add(new HTML("<b>" + Main.i18n("mail.reply") + ":</b>&nbsp;"));
        hPanel5.add(replyPanel);
    }

    table.setWidget(rows++, 0, hPanel5);

    // Separator end line
    Image horizontalLine = new Image("img/transparent_pixel.gif");
    horizontalLine.setStyleName("okm-TopPanel-Line-Border");
    horizontalLine.setSize("100%", "2px");
    table.setWidget(rows, 0, horizontalLine);
    table.getFlexCellFormatter().setVerticalAlignment(rows, 0, HasAlignment.ALIGN_BOTTOM);
    table.getFlexCellFormatter().setHeight(rows, 0, "30");
}

From source file:com.pietschy.gwt.pectin.demo.client.misc.AbstractDemo.java

License:Apache License

private void showSource(Class<?> clazz) {
    String url = "http://code.google.com/p/gwt-pectin/source/browse/trunk/demo/src/main/java/"
            + clazz.getName().replace('.', '/') + ".java";

    Window.open(url, "PectinSource", "");
}

From source file:com.pronoiahealth.olhie.client.widgets.booklist3d.BookList3D.java

License:Open Source License

/**
 * Used to add books in after the initial display
 * /*from   w  ww.  j ava2 s .  c o  m*/
 * @param bookDiv
 */
public void attachEventsToLst() {
    this.books = $("#bk-list > li > div.bk-book", bookList.getParentElement());
    this.currentBookCnt = books.length();

    books.each(new Function() {
        @Override
        public void f(Element e) {
            final GQuery book = $(e);
            final GQuery other = books.not(book);
            final GQuery parent = book.parent();
            final GQuery page = book.children("div.bk-page");
            final GQuery bookview = parent.find("button.bk-bookview");
            final GQuery flipAction = parent.find("button.bk-bookback");
            final GQuery content = page.children("div.bk-content");
            final GQuery toc = page.find("div.bk-toc");
            final GQuery tocPageMyCollectionsBtn = toc.find("a.bk-tocPage-myCollectionsBtn");
            final GQuery tocPageCommentRatingBtn = toc.find("a.bk-tocPage-commentRatingBtn");
            final GQuery tocItems = page.find("div.bk-toc-item");
            final GQuery tocLinks = page.find("div.bk-toc-link");
            final GQuery downloadContentBtns = page.find("a.bk-download-btn");
            final GQuery viewContentBtns = page.find("a.bk-view-btn");
            final GQuery linkContentBtns = page.find("a.bk-link-btn");
            final IntHolder current = new IntHolder();

            // Book Id
            final String bookId = book.attr("bookId");

            // Bind the call back
            book.bind(Event.ONCLICK, new Function() {
                @Override
                public boolean f(Event e) {
                    checkBookIsAuthorRequestEvent.fire(new CheckBookIsAuthorRequestEvent(bookId));
                    return false;
                }
            });

            flipAction.bind(Event.ONCLICK, new Function() {
                @Override
                public boolean f(Event e) {
                    // Toggle the button
                    if (flipAction.hasClass("bk-bookback-pressed") == true) {
                        flipAction.removeClass("bk-bookback-pressed");
                    } else {
                        flipAction.addClass("bk-bookback-pressed");
                    }

                    bookview.removeClass("bk-active");
                    boolean flipVal = false;
                    Object flipObj = book.data("flip");
                    if (flipObj != null) {
                        flipVal = (Boolean) flipObj;
                    }
                    if (flipVal == true) {
                        book.data("opened", false).data("flip", false);
                        book.removeClass("bk-viewback");
                        book.addClass("bk-bookdefault");
                    } else {
                        book.data("opened", false).data("flip", true);
                        book.removeClass("bk-viewinside").removeClass("bk-bookdefault");
                        book.addClass("bk-viewback");
                    }
                    return true;
                }
            });

            bookview.bind(Event.ONCLICK, new Function() {
                @Override
                public boolean f(Event e) {

                    // If the view back cover was pressed need to reset
                    // the button
                    if (flipAction.hasClass("bk-bookback-pressed") == true) {
                        flipAction.removeClass("bk-bookback-pressed");
                    }

                    GQuery thisPt = $(e);
                    other.data("opened", false);
                    other.removeClass("bk-viewinside");
                    GQuery otherParent = other.parent().css(CSS.ZINDEX.with(0));
                    otherParent.find("button.bk-bookview").removeClass("bk-active");

                    if (!other.hasClass("bk-viewback")) {
                        other.addClass("bk-bookdefault");
                    }

                    boolean openedVal = false;
                    Object openedObj = book.data("opened");
                    if (openedObj != null) {
                        openedVal = (Boolean) openedObj;
                    }
                    if (openedVal == true) {
                        thisPt.removeClass("bk-active");
                        book.data("opened", false).data("flip", false);
                        book.removeClass("bk-viewinside");
                        book.addClass("bk-bookdefault");
                    } else {
                        thisPt.addClass("bk-active");
                        book.data("opened", true).data("flip", false);
                        book.removeClass("bk-viewback").removeClass("bk-bookdefault");
                        book.addClass("bk-viewinside");
                        parent.css(CSS.ZINDEX.with(currentBookCnt++));
                        current.setIntVal(0);
                        content.removeClass("bk-content-current").eq(current.getIntVal())
                                .addClass("bk-content-current");
                    }
                    return true;
                }
            });

            // If it is a btn-success buton we want to add the book to the
            // users collection, otherwise remove for the collection.
            // Clear results container
            tocPageMyCollectionsBtn.bind(Event.ONCLICK, new Function() {
                @Override
                public boolean f(Event e) {
                    GQuery anchor = $(e);
                    boolean addToCollection = anchor.hasClass("btn-success");
                    adjustMyCollection(bookId, addToCollection);
                    return false;
                }
            });

            tocPageCommentRatingBtn.bind(Event.ONCLICK, new Function() {
                @Override
                public boolean f(Event e) {
                    addUpdateComment(bookId);
                    return false;
                }
            });

            if (content.length() > 1) {
                GQuery navPrev = $("<span class=\"bk-page-prev\">&lt;</span>");
                GQuery navNext = $("<span class=\"bk-page-next\">&gt;</span>");
                page.append($("<nav></nav>").append(navPrev).append(navNext));

                navPrev.bind(Event.ONCLICK, new Function() {
                    @Override
                    public boolean f(Event e) {
                        if (current.getIntVal() > 0) {
                            current.subOne();
                            content.removeClass("bk-content-current").eq(current.getIntVal())
                                    .addClass("bk-content-current");
                        }
                        return false;
                    }
                });

                navNext.bind(Event.ONCLICK, new Function() {
                    @Override
                    public boolean f(Event e) {
                        if (current.getIntVal() < content.length() - 1) {
                            current.plusOne();
                            content.removeClass("bk-content-current").eq(current.getIntVal())
                                    .addClass("bk-content-current");
                        }
                        return false;
                    }
                });

                // TOC items
                tocItems.each(new Function() {
                    @Override
                    public void f(Element e) {
                        GQuery item = $(e);
                        item.bind(Event.ONCLICK, new Function() {
                            @Override
                            public boolean f(Event e) {
                                GQuery thisItem = $(e);
                                String refStr = thisItem.attr("item-ref");
                                int refInt = Integer.parseInt(refStr);
                                if (refInt <= content.length() - 1) {
                                    current.setIntVal(refInt);
                                    content.removeClass("bk-content-current").eq(current.getIntVal())
                                            .addClass("bk-content-current");
                                }
                                return false;
                            }
                        });
                    }
                });

                // TOC link
                tocLinks.each(new Function() {
                    @Override
                    public void f(Element e) {
                        GQuery item = $(e);
                        item.bind(Event.ONCLICK, new Function() {
                            @Override
                            public boolean f(Event e) {
                                current.setIntVal(0);
                                content.removeClass("bk-content-current").eq(current.getIntVal())
                                        .addClass("bk-content-current");
                                return false;
                            }
                        });
                    }
                });

                // Link buttons
                linkContentBtns.each(new Function() {
                    @Override
                    public void f(Element e) {
                        GQuery btn = $(e);
                        btn.bind(Event.ONCLICK, new Function() {
                            @Override
                            public boolean f(Event e) {
                                GQuery thisAnchor = $(e);
                                String href = thisAnchor.attr("href");
                                Window.open(href, "_black", "");
                                return false;
                            }
                        });
                    }
                });

                // Download content buttons
                downloadContentBtns.each(new Function() {
                    @Override
                    public void f(Element e) {
                        GQuery btn = $(e);
                        btn.bind(Event.ONCLICK, new Function() {
                            @Override
                            public boolean f(Event e) {
                                GQuery thisAnchor = $(e);
                                String assetId = thisAnchor.attr("bookassetid");
                                downloadBookAssetEvent.fire(new DownloadBookAssetEvent(assetId));
                                return false;
                            }
                        });
                    }
                });

                // view content buttons
                viewContentBtns.each(new Function() {
                    @Override
                    public void f(Element e) {
                        GQuery btn = $(e);

                        // fire action if they are not disabled
                        btn.bind(Event.ONCLICK, new Function() {
                            @Override
                            public boolean f(Event e) {
                                GQuery thisAnchor = $(e);
                                String disabledStr = thisAnchor.attr("disabled");
                                boolean disabled = (disabledStr != null ? Boolean.parseBoolean(disabledStr)
                                        : false);
                                if (disabled == false) {
                                    String assetId = thisAnchor.attr("bookassetid");
                                    String contentTypeKey = thisAnchor.attr("viewable-content-key");
                                    showViewBookassetDialogEvent
                                            .fire(new ShowViewBookassetDialogEvent(assetId, contentTypeKey));
                                }
                                return false;
                            }
                        });
                    }
                });
            }
        }
    });

    // Add Tooltips
    $("[rel=tooltip]", bookList.getParentElement()).as(Tooltip).tooltip();
}

From source file:com.qualogy.qafe.gwt.client.ui.renderer.FileUploadRenderer.java

License:Apache License

public UIObject render(ComponentGVO component, String uuid, String parent, String context) {
    HorizontalPanel uiObject = null;/*  w w  w. j  a  va  2  s . c o m*/
    final String finalParent = parent;
    if (component != null) {
        if (component instanceof FileUploadGVO) {
            if (component.getMenu() != null) {
                final ComponentGVO finalComponentGVO = component;
                final String finalUuid = uuid;
                uiObject = new HorizontalPanel() {
                    @Override
                    public void onBrowserEvent(Event event) {
                        if (event.getTypeInt() == Event.ONCONTEXTMENU) {
                            DOM.eventPreventDefault(event);
                            applyContextMenu(event, finalComponentGVO, finalUuid, finalParent);
                        }
                        super.onBrowserEvent(event);
                    }

                    @Override
                    protected void setElement(Element elem) {
                        super.setElement(elem);
                        sinkEvents(Event.ONCONTEXTMENU);
                    }
                };
            } else {
                uiObject = new HorizontalPanel();
            }
            final FormPanel formPanel = new FormPanel();
            formPanel.setAction(GWT.getModuleBaseURL() + "/rpc.upload");
            formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
            formPanel.setMethod(FormPanel.METHOD_POST);

            final Button uploadButtonComponent = new Button("Upload");
            uploadButtonComponent.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    formPanel.submit();
                }
            });

            final FileUpload fileUploadComponent = new FileUpload();
            fileUploadComponent.setName("uploadElement");
            fileUploadComponent.addChangeHandler(new ChangeHandler() {
                public void onChange(ChangeEvent event) {
                    String filename = fileUploadComponent.getFilename();
                    boolean enabled = (filename != null) && (filename.length() > 0);
                    uploadButtonComponent.setEnabled(enabled);
                }
            });

            Hidden appId = new Hidden();
            final String appID = ClientApplicationContext.getInstance().getWindowSession();
            appId.setName("APPUUID=" + appID);

            Hidden windowId = new Hidden();
            windowId.setName("WINDOWID=" + parent);

            Grid gridPanel = new Grid(2, 4);
            gridPanel.setWidget(0, 0, fileUploadComponent);
            gridPanel.setWidget(0, 1, uploadButtonComponent);
            gridPanel.setWidget(0, 2, appId);
            gridPanel.setWidget(0, 3, windowId);
            formPanel.add(gridPanel);

            RendererHelper.fillIn(component, formPanel, uuid, parent, context);
            formPanel.addSubmitCompleteHandler(new SubmitCompleteHandler() {

                public void onSubmitComplete(SubmitCompleteEvent event) {
                    String uuId = event.getResults();
                    boolean success = false;
                    if (uuId != null && uuId.indexOf("=") > 0) {
                        uuId = uuId.substring(uuId.indexOf("=") + 1);
                        success = true;
                    }
                    if (formPanel instanceof HasWidgets) {
                        HasWidgets hasWidgets = (HasWidgets) formPanel;
                        Iterator<Widget> itr = hasWidgets.iterator();
                        while (itr.hasNext()) {
                            Widget widget = itr.next();
                            if (widget instanceof Grid) {
                                Grid gridPanel = (Grid) widget;
                                final FileUpload fileUpload = (FileUpload) gridPanel.getWidget(0, 0);
                                final Button uploadButton = (Button) gridPanel.getWidget(0, 1);
                                if (success) {
                                    fileUpload.setVisible(false);
                                    uploadButton.setVisible(false);
                                    String fileName = event.getResults().substring(0,
                                            event.getResults().indexOf("#"));
                                    final String viewUrl = GWT.getModuleBaseURL() + "/rpc.view?APPUUID=" + appID
                                            + "&WINDOWID=" + finalParent + "&VIEW=" + uuId;
                                    final Label fileNameLabel = new Label(fileName);
                                    DOM.setStyleAttribute(fileNameLabel.getElement(), "textDecoration",
                                            "underline");
                                    DOM.setStyleAttribute(fileNameLabel.getElement(), "cursor", "hand");
                                    fileNameLabel.addClickHandler(new ClickHandler() {
                                        public void onClick(ClickEvent event) {
                                            Window.open(viewUrl, "UploadedFile", null);
                                        }
                                    });
                                    fileNameLabel.setVisible(true);

                                    final Label clearLabel = new Label("Clear");
                                    clearLabel.setVisible(true);
                                    final String finalUuId = uuId;

                                    DOM.setStyleAttribute(clearLabel.getElement(), "textDecoration",
                                            "underline");
                                    DOM.setStyleAttribute(clearLabel.getElement(), "cursor", "hand");

                                    clearLabel.addClickHandler(new ClickHandler() {
                                        public void onClick(ClickEvent event) {
                                            MainFactoryActions.removeUploadedFile(appID, finalParent,
                                                    finalUuId);
                                            DOM.setElementAttribute(fileUpload.getElement(), "fu-uuid", "");
                                            fileNameLabel.setVisible(false);
                                            clearLabel.setVisible(false);
                                            fileUpload.setVisible(true);
                                            uploadButton.setVisible(true);
                                            init(fileUpload, uploadButton);
                                        }
                                    });
                                    gridPanel.setWidget(1, 0, fileNameLabel);
                                    gridPanel.setWidget(1, 1, clearLabel);

                                    DOM.setElementAttribute(fileUpload.getElement(), "fu-uuid", uuId);
                                    CallbackHandler.createCallBack(formPanel, "onfinish", null, null);
                                } else {
                                    Hyperlink fileNameLabel = (Hyperlink) gridPanel.getWidget(1, 0);
                                    fileNameLabel.setText("Uploading unsuccessfull.");
                                    fileNameLabel.setVisible(true);
                                }
                            }
                        }
                    }
                }
            });
            uiObject.add(formPanel);

            init(fileUploadComponent, uploadButtonComponent);
        }
    }
    return uiObject;
}

From source file:com.qualogy.qafe.gwt.client.vo.functions.execute.OpenWindowExecute.java

License:Apache License

public void execute(BuiltInFunctionGVO builtInFunction) {
    if (builtInFunction instanceof OpenWindowGVO) {
        OpenWindowGVO openWindow = (OpenWindowGVO) builtInFunction;
        if (openWindow.getWindow() != null && openWindow.getWindow().length() != 0) {
            if (ClientApplicationContext.getInstance().isMDI()) {
                ClientApplicationContext.getInstance().removeWindow(openWindow.getWindow(),
                        openWindow.getContext(), openWindow.getUuid());
            } else {
                WindowFactory.clearWidgetFromMainPanel();
            }//from  w ww  . ja  v  a2s  . c om
            MainFactoryActions.getUIByUUID(openWindow.getUuid(), openWindow.getWindow());
        } else if (openWindow.getUrl() != null && openWindow.getUrl().length() != 0) {
            String title = openWindow.getUrl();
            if (openWindow.getTitle() != null) {
                title = openWindow.getTitle();
                title = title.replace(" ", "_");
            }
            int width = 0;
            int height = 0;
            int left = 20;
            int top = 20;
            String menubar = "no";
            String scrollbars = "no";
            String toolbar = "no";
            String status = "no";
            String resize = "yes";
            String modal = "no";
            String features = "";
            if (openWindow.getParams() != null) {
                String[] paramArr = openWindow.getParams().split(",");
                String temp = null;
                for (int i = 0; i < paramArr.length; i++) {
                    if (paramArr[i].indexOf("width") > -1) {
                        width = Integer.parseInt(paramArr[i].substring(paramArr[i].indexOf("=") + 1));
                    } else if (paramArr[i].indexOf("height") > -1) {
                        height = Integer.parseInt(paramArr[i].substring(paramArr[i].indexOf("=") + 1));
                    } else if (paramArr[i].indexOf("left") > -1) {
                        left = Integer.parseInt(paramArr[i].substring(paramArr[i].indexOf("=") + 1));
                    } else if (paramArr[i].indexOf("top") > -1) {
                        top = Integer.parseInt(paramArr[i].substring(paramArr[i].indexOf("=") + 1));
                    } else if (paramArr[i].indexOf("menubar") > -1) {
                        temp = paramArr[i].substring(paramArr[i].indexOf("=") + 1);
                        if (temp.equalsIgnoreCase("yes") || temp.equalsIgnoreCase("true") || temp.equals("1")) {
                            menubar = "yes";
                        }
                        features = features + "menubar=" + menubar + ",";
                    } else if (paramArr[i].indexOf("scrollbars") > -1) {
                        temp = paramArr[i].substring(paramArr[i].indexOf("=") + 1);
                        if (temp.equalsIgnoreCase("yes") || temp.equalsIgnoreCase("true") || temp.equals("1")) {
                            scrollbars = "yes";
                        }
                        features = features + "scrollbars=" + scrollbars + ",";
                    } else if (paramArr[i].indexOf("toolbar") > -1) {
                        temp = paramArr[i].substring(paramArr[i].indexOf("=") + 1);
                        if (temp.equalsIgnoreCase("yes") || temp.equalsIgnoreCase("true") || temp.equals("1")) {
                            toolbar = "yes";
                        }
                        features = features + "toolbar=" + toolbar + ",";
                    } else if (paramArr[i].indexOf("status") > -1) {
                        temp = paramArr[i].substring(paramArr[i].indexOf("=") + 1);
                        if (temp.equalsIgnoreCase("yes") || temp.equalsIgnoreCase("true") || temp.equals("1")) {
                            status = "yes";
                        }
                        features = features + "status=" + status + ",";
                    } else if (paramArr[i].indexOf("resizable") > -1) {
                        temp = paramArr[i].substring(paramArr[i].indexOf("=") + 1);
                        if (temp.equalsIgnoreCase("no") || temp.equalsIgnoreCase("no") || temp.equals("1")) {
                            resize = "no";
                        }
                        features = features + "resizable=" + resize + ",";
                    } else if (paramArr[i].indexOf("modal") > -1) {
                        temp = paramArr[i].substring(paramArr[i].indexOf("=") + 1);
                        if (temp.equalsIgnoreCase("yes") || temp.equalsIgnoreCase("true") || temp.equals("1")) {
                            modal = "yes";
                        }
                    }
                }
            }
            if (openWindow.getExternal()) {
                // Set the title to "" when open a window externally, the title will not be shown anyway,
                // in IE this will give an exception when title is not empty
                title = "";
                if (openWindow.getParams() != null) {
                    int index = openWindow.getParams().indexOf("left") + openWindow.getParams().indexOf("top")
                            + openWindow.getParams().indexOf("screenX")
                            + openWindow.getParams().indexOf("screenY");
                    if (index > -1) {
                        Window.open(openWindow.getUrl(), title, openWindow.getParams());
                    } else {

                        ClientApplicationContext.getInstance().externalWindowCount++;
                        if (openWindow.getPlacement().equals(OpenWindowGVO.PLACEMENT_CASCADE)) {
                            if (ClientApplicationContext.getInstance().externalWindowCount > 1) {
                                for (int i = 1; i < ClientApplicationContext
                                        .getInstance().externalWindowCount; i++) {
                                    left = left + 20;
                                    top = top + 20;
                                }
                            }
                            features = features + ",screenX=" + left + ",screenY=" + top;
                        } else if (openWindow.getPlacement().equals(OpenWindowGVO.PLACEMENT_CENTER_CASCADE)) {
                            String centerCordinates = centeredWindow(width, height);
                            if (ClientApplicationContext.getInstance().externalWindowCount > 1) {
                                String[] centerCordinatesArr = centerCordinates.split(",");
                                for (int i = 0; i < centerCordinatesArr.length; i++) {
                                    if (centerCordinatesArr[i].indexOf("screenX") == 0) {
                                        left = Integer.parseInt(centerCordinatesArr[i]
                                                .substring(centerCordinatesArr[i].indexOf("=") + 1));
                                    }
                                    if (centerCordinatesArr[i].indexOf("screenY") == 0) {
                                        top = Integer.parseInt(centerCordinatesArr[i]
                                                .substring(centerCordinatesArr[i].indexOf("=") + 1));
                                    }
                                }
                                for (int i = 1; i < ClientApplicationContext
                                        .getInstance().externalWindowCount; i++) {
                                    left = left + 20;
                                    top = top + 20;
                                }
                                features = features + ",screenX=" + left + ",screenY=" + top;
                            } else {
                                features = features + centerCordinates;
                            }
                        }
                        Window.open(openWindow.getUrl(), title, features);
                    }
                } else {
                    Window.open(openWindow.getUrl(), title, "");
                }
            } else {
                boolean resizable = true;
                boolean isModal = false;
                if (resize.equals("") || resize.equals("no")) {
                    resizable = false;
                }
                if (modal.equals("yes")) {
                    isModal = true;
                }
                boolean centered = false;
                if (openWindow.getPlacement().equals(OpenWindowGVO.PLACEMENT_CASCADE)) {
                    if (ClientApplicationContext.getInstance().internalWindowCount > 0) {
                        for (int i = 0; i < ClientApplicationContext.getInstance().internalWindowCount; i++) {
                            left = left + 20;
                            top = top + 20;
                        }
                    }
                } else if (openWindow.getPlacement().equals(OpenWindowGVO.PLACEMENT_CENTER_CASCADE)) {
                    String[] centerCordinatesArr = centeredWindow(width, height).split(",");
                    for (int i = 0; i < centerCordinatesArr.length; i++) {
                        if (centerCordinatesArr[i].indexOf("screenX") == 0) {
                            left = Integer.parseInt(
                                    centerCordinatesArr[i].substring(centerCordinatesArr[i].indexOf("=") + 1));
                        }
                        if (centerCordinatesArr[i].indexOf("screenY") == 0) {
                            top = Integer.parseInt(
                                    centerCordinatesArr[i].substring(centerCordinatesArr[i].indexOf("=") + 1));
                        }
                    }
                    if (ClientApplicationContext.getInstance().internalWindowCount > 0) {
                        for (int i = 0; i < ClientApplicationContext.getInstance().internalWindowCount; i++) {
                            left = left + 20;
                            top = top + 20;
                        }
                    }
                } else if (openWindow.getPlacement().equals(OpenWindowGVO.PLACEMENT_TILED)) {
                    top = 30;
                    left = 0;
                    if (ClientApplicationContext.getInstance().internalWindowCount > 0) {
                        int row = 1;
                        int column = 1;
                        boolean makeNextRow = false;
                        for (int i = 0; i < ClientApplicationContext.getInstance().internalWindowCount; i++) {
                            left = (width * (i + 1));
                            if ((left + width) > screenWidth()) {
                                left = 0;
                                makeNextRow = true;
                                if (row > 1) {
                                    left = (width * column);
                                    column++;
                                    if ((left + width) > screenWidth()) {
                                        makeNextRow = true;
                                    } else {
                                        makeNextRow = false;
                                    }
                                }
                                if (makeNextRow) {
                                    left = 0;
                                    column = 1;
                                    top = 30 + (height * row);
                                    row++;
                                    makeNextRow = false;
                                }
                            } else {
                                top = 30;
                            }
                        }
                    }
                }
                // corrections for the height
                if (width == 0) {
                    width = 600;
                }

                if (height == 0) {
                    height = 450;
                }
                MainFactory.createWindowWithUrl(title, openWindow.getUrl(), width, height, resizable, centered,
                        top, left, isModal);
                ClientApplicationContext.getInstance().internalWindowCount++;
            }
        }
        FunctionsExecutor.setProcessedBuiltIn(true);
    }

}

From source file:com.qualogy.qafe.gwt.client.vo.handlers.OpenWindowHandler.java

License:Apache License

private void openUrlExternal(final String url, final Map<String, String> paramMap) {
    // Set the title to "" when open a window externally, the title will not be shown anyway,
    // in IE this will give an exception when title is not empty
    final String title = "";
    final String features = toCommaSeperated(paramMap);
    Window.open(url, title, features);
    ClientApplicationContext.getInstance().externalWindowCount++;
}