Example usage for com.google.gwt.user.client.ui Image addClickHandler

List of usage examples for com.google.gwt.user.client.ui Image addClickHandler

Introduction

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

Prototype

public HandlerRegistration addClickHandler(ClickHandler handler) 

Source Link

Usage

From source file:asquare.gwt.tkdemo.client.demos.DialogPanel.java

License:Apache License

private Widget createModalDialogDemo() {
    BasicPanel panel = new BasicPanel("div", "block");
    panel.setStyleName("example division");
    DomUtil.setStyleAttribute(panel, "whiteSpace", "nowrap");

    panel.add(new HTML("<h4>ModalDialog examples</h4>"));

    class CloseListener implements ClickHandler {
        private final ModalDialog m_dialog;

        public CloseListener(ModalDialog dialog) {
            m_dialog = dialog;//  ww  w.  ja  v a2s . c  o  m
        }

        public void onClick(ClickEvent event) {
            m_dialog.hide();
        }
    }

    class CloseButton extends Button {
        public CloseButton(ModalDialog dialog) {
            super("Close");
            addClickHandler(new CloseListener(dialog));
        }

        public CloseButton(ModalDialog dialog, String text) {
            super(text);
            addClickHandler(new CloseListener(dialog));
        }
    }

    final Button plainDialog = new Button("Plain");
    plainDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            dialog.setCaption("Caption area", false);
            dialog.add(new Label("Content area"));
            dialog.add(new CloseButton(dialog));
            dialog.show(plainDialog);
        }
    });
    panel.add(plainDialog);

    final Button verboseDialog = new Button("Verbose");
    verboseDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            dialog.setCaption("Verbose dialog", false);
            dialog.add(new Label("Twas brillig, and the slithy toves " + "  Did gyre and gimble in the wabe: "
                    + "All mimsy were the borogoves, " + "  And the mome raths outgrabe "
                    + "Beware the Jabberwock, my son! " + "The jaws that bite, the claws that catch! "
                    + "Beware the Jubjub bird, and shun " + "The frumious Bandersnatch!"));
            dialog.add(new CloseButton(dialog));
            dialog.show(verboseDialog);
        }
    });
    panel.add(verboseDialog);

    final Button captionLessDialog = new Button("No caption");
    captionLessDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            dialog.add(new Label("Captionless dialog"));
            dialog.add(new CloseButton(dialog));
            dialog.show(captionLessDialog);
        }
    });
    panel.add(captionLessDialog);

    final Button loadingDialog = new Button("Loading...");
    loadingDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            final Label label = new Label("0% loaded");
            dialog.add(label);
            dialog.show(loadingDialog);
            new Timer() {
                private int m_count = 0;

                public void run() {
                    label.setText(++m_count + "% loaded");
                    if (m_count == 100) {
                        dialog.hide();
                        cancel();
                    }
                }
            }.scheduleRepeating(1);
        }
    });
    panel.add(loadingDialog);

    final Button undraggableDialog = new Button("Drag disabled");
    undraggableDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog() {
                protected List<Controller> createCaptionControllers() {
                    List<Controller> result = new ArrayList<Controller>();
                    result.add(ControlSurfaceController.getInstance());
                    return result;
                }
            };
            dialog.setCaption("Drag disabled", false);
            dialog.add(new Label(
                    "This dialog uses a custom controller in the header which does not provide drag support."));
            dialog.add(new CloseButton(dialog));
            dialog.show(undraggableDialog);
        }
    });
    panel.add(undraggableDialog);

    final Button styledDragDialog = new Button("Drag style");
    styledDragDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            String oldPrimaryName = dialog.getStylePrimaryName();
            dialog.setStylePrimaryName("dialog-dragstyle");
            dialog.addStyleName(oldPrimaryName);
            dialog.setCaption("Drag me", false);
            dialog.add(new Label(
                    "This dialog employs the \"tk-ModalDialog-dragging\" style which is applied while dragging. "));
            dialog.add(new CloseButton(dialog));
            dialog.show(styledDragDialog);
        }
    });
    panel.add(styledDragDialog);

    final Button focusManagementDialog = new Button("Focus management");
    focusManagementDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            dialog.setCaption("Register", false);
            FocusModel fModel = dialog.getFocusModel();

            final int FIELD_COUNT = 3;
            Grid table = new Grid(FIELD_COUNT, 2);
            dialog.add(table);
            Widget[] labels = new Widget[FIELD_COUNT];
            labels[0] = new Label("User name: ");
            labels[1] = new Label("Password: ");
            labels[2] = new Label("Retype password: ");

            FocusWidget[] fields = new FocusWidget[FIELD_COUNT];
            fields[0] = new TextBox();
            fields[1] = new PasswordTextBox();
            fields[2] = new PasswordTextBox();

            CellFormatter formatter = table.getCellFormatter();
            for (int i = 0; i < labels.length; i++) {
                table.setWidget(i, 0, labels[i]);
                formatter.setHorizontalAlignment(i, 0, HasHorizontalAlignment.ALIGN_LEFT);
                table.setWidget(i, 1, fields[i]);

                /*
                 * Manually add fields to focus cycle. (The dialog does not
                 * scan the children of panels for focusable widgets.)
                 */
                fModel.add(fields[i]);
            }

            // this widget will be focused when the dialog is shown
            fModel.setFocusWidget(fields[0]);

            ColumnPanel buttonPanel = new ColumnPanel();
            buttonPanel.setWidth("100%");
            dialog.add(buttonPanel);

            Button closeButton = new CloseButton(dialog, "Register!");
            fModel.add(closeButton);
            buttonPanel.add(closeButton);

            Button cancelButton = new CloseButton(dialog, "Cancel");
            fModel.add(cancelButton);
            buttonPanel.addWidget(cancelButton, false);
            buttonPanel.setCellHorizontalAlignment(ColumnPanel.ALIGN_RIGHT);

            dialog.show(focusManagementDialog);
        }
    });
    panel.add(focusManagementDialog);

    final Button explicitlyPositionedDialog = new Button("Explicitly positioned");
    explicitlyPositionedDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            dialog.removeController(dialog.getController(ModalDialog.PositionDialogController.class));
            int contentWidth = 300;
            int contentHeight = 100;
            dialog.setContentWidth(contentWidth + "px");
            dialog.setContentHeight(contentHeight + "px");
            dialog.setPopupPosition(100, 100);
            dialog.setCaption("Explicitly positioned dialog", false);
            dialog.add(new Label(
                    "Automatic positioning is disabled. Dimensions and position are set explicitly. "));
            dialog.add(new CloseButton(dialog));
            dialog.show(explicitlyPositionedDialog);
        }
    });
    panel.add(explicitlyPositionedDialog);

    final Button multipleDialogs = new Button("Multiple dialogs");
    multipleDialogs.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            ModalDialog dialog = new ModalDialog();
            dialog.setCaption("First dialog", false);
            FocusModel fModel = dialog.getFocusModel();
            RowPanel outer = new RowPanel();

            dialog.add(new HTML(""));

            final UrlLocation urlBox = new UrlLocation();
            urlBox.setText("http://www.asquare.net");
            urlBox.setWidth("350px");
            fModel.add(urlBox);
            outer.add(urlBox);

            Button goButton = new Button("Go");
            fModel.add(goButton);
            fModel.setFocusWidget(goButton);
            outer.addWidget(goButton, false);

            ListBox addressList = new ListBox();
            addressList.addItem("Select an address");
            addressList.addItem("http://www.asquare.net");
            addressList.addItem("http://www.google.com");
            addressList.addItem("http://www.sourceforge.net");
            addressList.addItem("http://www.apache.org");
            fModel.add(addressList);
            outer.add(addressList);

            final Frame frame = new Frame();
            frame.setSize("400px", "200px");
            outer.add(frame);
            urlBox.addChangeHandler(new ChangeHandler() {
                public void onChange(ChangeEvent event) {
                    frame.setUrl(urlBox.getURL());
                }
            });
            goButton.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    frame.setUrl(urlBox.getURL());
                }
            });
            addressList.addChangeHandler(new ChangeHandler() {
                public void onChange(ChangeEvent event) {
                    ListBox list = (ListBox) event.getSource();
                    if (list.getSelectedIndex() > 0) {
                        urlBox.setText(list.getItemText(list.getSelectedIndex()));
                        frame.setUrl(list.getItemText(list.getSelectedIndex()));
                    }
                }
            });
            final Button secondDialog = new Button("Show second dialog");
            secondDialog.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent event) {
                    final ModalDialog dialog = new ModalDialog();
                    dialog.setCaption("Second dialog", false);
                    dialog.add(new Label("Note that you cannot manipulate the widgets in the first dialog. "));
                    dialog.add(new CloseButton(dialog));
                    dialog.show(secondDialog);
                }
            });
            fModel.add(secondDialog);
            outer.add(secondDialog);
            Button closeButton = new CloseButton(dialog);
            fModel.add(closeButton);
            outer.add(closeButton);
            dialog.add(outer);
            dialog.show(multipleDialogs);
        }
    });
    panel.add(multipleDialogs);

    final Button styledDialog = new Button("Styled");
    styledDialog.addClickHandler(new ClickHandler() {
        public void onClick(ClickEvent event) {
            final ModalDialog dialog = new ModalDialog();
            dialog.addStyleName("dialog-styled");
            HorizontalPanel caption = new HorizontalPanel();
            caption.setWidth("100%");
            Label captionText = new Label("Oopsie!");
            caption.add(captionText);
            caption.setCellWidth(captionText, "100%");
            Image close = new Image("close.gif");
            close.addClickHandler(new CloseListener(dialog));
            caption.add(close);
            dialog.setCaption(caption);
            dialog.add(new Label("I've been a bad, bad browser."));
            dialog.add(new Button("Deny ice cream", new CloseListener(dialog)));
            dialog.show(styledDialog);
        }
    });
    panel.add(styledDialog);

    return panel;
}

From source file:ccc.client.gwt.widgets.ContextActionGridPlugin.java

License:Open Source License

/**
 * Constructor./*  w w w. j  a  v a2s. c  om*/
 *
 * @param contextMenu Context menu
 * @param resourceTable
 */
public ContextActionGridPlugin(final Menu contextMenu, final ColumnConfigSupport ccs) {
    _contextMenu = contextMenu;
    setWidth(COLUMN_WIDTH);
    setSortable(false);
    setResizable(false);
    setFixed(true);
    setMenuDisabled(true);
    setDataIndex("");
    // This is GWT image with GWT click handler.
    // Replace with GXT classes if possible.
    final Image btn = new Image(ImagePaths.BULLET_DISK);
    btn.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(final ClickEvent arg0) {
            if (ccs.visibleColumns() != null) {
                final User user = InternalServices.globals.currentUser();
                final Map<String, String> meta = user.getMetadata();
                meta.put(ccs.preferenceName(), ccs.visibleColumns());

                new UpdateCurrentUserAction(user) {

                    /** {@inheritDoc} */
                    @Override
                    protected void onSuccess(final User newUser) {
                        InternalServices.window.alert(UI_CONSTANTS.columnsSaved());
                    }
                }.execute();
            }
        }
    });
    setWidget(btn, "");
}

From source file:ch.heftix.mailxel.client.AddressEditBar.java

License:Open Source License

public AddressEditBar(final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    // mlPanel = new MultiLinePanel(100, new Label(","), 1);
    mlPanel = new MultiLinePanel(100, null);
    AddressSuggestOracle oracle = new AddressSuggestOracle(mailxelService, mailxelPanel);
    sb = new SuggestBox(oracle);
    sb.setWidth("80px");
    sb.addSelectionHandler(new SelectionHandler<Suggestion>() {

        public void onSelection(SelectionEvent<Suggestion> event) {
            AddressSuggestion s = (AddressSuggestion) event.getSelectedItem();
            AddressTO aTO = s.getAddressTO();
            addAddress(aTO);/* w w w.  j  a  v  a2s .c  om*/
            sb.setValue("");
        }
    });
    Image add = new Image("img/plus.png");
    add.setTitle("add recipient");
    add.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            String tmp = sb.getText();
            if (null != tmp && tmp.length() > 3 && tmp.contains("@")) {
                AddressTO aTO = new AddressTO();
                aTO.address = tmp.trim();
                addAddress(aTO);
                sb.setValue("");
            }
        }
    });

    Image erase = new Image("img/eraser.png");
    erase.setTitle("remove all recipients");
    erase.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            for (DeletableItem<AddressTO> di : items) {
                mlPanel.removeWidget(di);
            }
            items.clear();
        }
    });
    add(sb);
    add(add);
    add(erase);
    add(mlPanel);
}

From source file:ch.heftix.mailxel.client.AddressOverviewGrid.java

License:Open Source License

public AddressOverviewGrid(final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    HorizontalPanel toolbar = new HorizontalPanel();
    Image save = new Image("img/save.png");
    save.setTitle("Save");
    save.setStylePrimaryName("mailxel-toolbar-item");
    save.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            final StatusItem si = mailxelPanel.statusStart("address update");

            List<AddressTO> addressesToSave = new ArrayList<AddressTO>();

            int len = grid.getRowCount();

            for (int i = FIRST_PAYLOAD_ROW; i < len; i++) {

                TextBoxWChangeDetection tbS = (TextBoxWChangeDetection) grid.getWidget(i, 0);
                TextBoxWChangeDetection tbN = (TextBoxWChangeDetection) grid.getWidget(i, 1);
                TextBoxWChangeDetection tbA = (TextBoxWChangeDetection) grid.getWidget(i, 2);
                CheckBoxWChangeDetection cbV = (CheckBoxWChangeDetection) grid.getWidget(i, 3);
                CheckBoxWChangeDetection cbP = (CheckBoxWChangeDetection) grid.getWidget(i, 4);

                if (null != tbS && null != tbA && null != cbV && null != cbP && (tbS.isDirty() || tbN.isDirty()
                        || tbA.isDirty() || cbV.isDirty() || cbP.isDirty())) {
                    // add to save list

                    AddressTO to = new AddressTO();

                    to.shortname = tbS.getText();
                    if (tbS.isDirty()) {
                        to.shortNameDirty = true;
                    }//  w ww .ja  v  a 2  s.c om

                    to.name = tbN.getText();
                    if (tbN.isDirty()) {
                        to.nameDirty = true;
                    }

                    to.address = tbA.getText();

                    to.isValid = cbV.getValue();
                    if (cbV.isDirty()) {
                        to.validDirty = true;
                    }

                    to.isPreferred = cbP.getValue();
                    if (cbP.isDirty()) {
                        to.preferredDirty = true;
                    }

                    addressesToSave.add(to);
                }
            }

            mailxelService.saveAddresses(addressesToSave, new AsyncCallback<Void>() {

                public void onFailure(Throwable caught) {
                    si.error(caught);

                }

                public void onSuccess(Void result) {
                    si.done();
                }
            });
        }
    });

    toolbar.add(save);
    // toolbar.add(statusMessage);
    add(toolbar);

    final TextBox shortname = new TextBox();
    shortname.setWidth("50px");

    final TextBox address = new TextBox();
    address.setWidth("300px");

    // header
    grid.setText(LABEL_ROW, 0, "Shortname");
    grid.setText(LABEL_ROW, 1, "Name");
    grid.setText(LABEL_ROW, 2, "Address");
    grid.setText(LABEL_ROW, 3, "Valid");
    grid.setText(LABEL_ROW, 4, "Pref.");
    grid.setText(LABEL_ROW, 5, "Last Seen");
    grid.setText(LABEL_ROW, 6, "# Seen");

    ColumnFormatter fmt = grid.getColumnFormatter();
    fmt.setWidth(0, "50px");
    fmt.setWidth(1, "100px");
    fmt.setWidth(2, "300px");
    fmt.setWidth(3, "50px");
    fmt.setWidth(4, "50px");
    fmt.setWidth(5, "100px");
    fmt.setWidth(6, "100px");

    final AsyncCallback<List<AddressTO>> callback = new AsyncCallback<List<AddressTO>>() {

        public void onSuccess(List<AddressTO> result) {

            addresses = result;

            // clean all except header
            int rows = grid.getRowCount();
            for (int i = rows - 1; i >= FIRST_PAYLOAD_ROW; i--) {
                grid.removeRow(i);
            }

            int row = FIRST_PAYLOAD_ROW;
            for (AddressTO address : result) {
                TextBoxWChangeDetection snTB = new TextBoxWChangeDetection();
                snTB.setText(address.shortname);
                snTB.setWidth("50px");
                grid.setWidget(row, 0, snTB);
                // grid.setText(row, 1, address.address);

                TextBoxWChangeDetection nTB = new TextBoxWChangeDetection();
                if (null != address.name) {
                    nTB.setText(address.name);
                }
                nTB.setWidth("100px");
                grid.setWidget(row, 1, nTB);

                TextBoxWChangeDetection aTB = new TextBoxWChangeDetection();
                aTB.setText(address.address);
                aTB.setWidth("300px");
                grid.setWidget(row, 2, aTB);

                CheckBoxWChangeDetection cbValid = new CheckBoxWChangeDetection();
                cbValid.setValue(address.isValid);
                grid.setWidget(row, 3, cbValid);

                CheckBoxWChangeDetection cbPref = new CheckBoxWChangeDetection();
                cbPref.setValue(address.isPreferred);
                grid.setWidget(row, 4, cbPref);

                grid.setText(row, 5, address.lastSeen);
                grid.setText(row, 6, Integer.toString(address.count));

                row++;
            }

            if (null != statusItem) {
                statusItem.done("found " + Integer.toString(row - FIRST_PAYLOAD_ROW) + " addresses.", 0);
                statusItem = null;
            }
        }

        public void onFailure(Throwable caught) {
            statusItem.error(caught);
        }
    };

    final KeyPressHandler kbla = new KeyPressHandler() {

        public void onKeyPress(KeyPressEvent event) {
            if (KeyCodes.KEY_ENTER == event.getCharCode()) {
                String snTxt = UIUtil.trimNull(shortname.getText());
                String aTxt = UIUtil.trimNull(address.getText());

                statusItem = mailxelPanel.statusStart("address search");

                mailxelService.searchAddresses(snTxt, aTxt, callback);
            }
        }
    };

    // final KeyboardListenerAdapter kbla = new KeyboardListenerAdapter() {
    //
    // public void onKeyPress(Widget sender, char keyCode, int modifiers) {
    // if (KEY_ENTER == keyCode) {
    // String snTxt = UIUtil.trimNull(shortname.getText());
    // String aTxt = UIUtil.trimNull(address.getText());
    //
    // statusItem = mailxelPanel.statusStart("address search started");
    //
    // mailxelService.searchAddresses(snTxt, aTxt, callback);
    // }
    // }
    // };

    shortname.addKeyPressHandler(kbla);
    address.addKeyPressHandler(kbla);

    grid.setWidget(HEADER_ROW_1, 0, shortname);
    grid.setWidget(HEADER_ROW_1, 2, address);

    add(grid);
}

From source file:ch.heftix.mailxel.client.AddressUploadGrid.java

License:Open Source License

public AddressUploadGrid(final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    HorizontalPanel toolbar = new HorizontalPanel();
    Image save = new Image("img/save.png");
    save.setTitle("Save");
    save.setStylePrimaryName("mailxel-toolbar-item");
    save.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            String text = textArea.getText();
            mailxelService.saveAddresses(text, new AsyncCallback<Void>() {

                public void onFailure(Throwable caught) {
                    statusMessage.setText("Cannot save addresses: " + caught);
                }//from ww w.  ja va  2 s.  co  m

                public void onSuccess(Void result) {
                    statusMessage.setText("Addresses saved");
                }
            });
        }
    });

    toolbar.add(save);
    toolbar.add(statusMessage);
    add(toolbar);

    textArea.setCharacterWidth(80);
    textArea.setVisibleLines(25);

    add(textArea);
}

From source file:ch.heftix.mailxel.client.AttachmentBar.java

License:Open Source License

public void addAttachement(final AttachmentTO aTO, final MailxelPanel mailxelPanel,
        final OnDemandTabPanel bodyPanel) {

    final Image icon = createIcon(aTO.name);
    icon.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            boolean directDownload = false;

            // attachment clicked; check for button
            MouseEvent me = (MouseEvent) sender;
            if (NativeEvent.BUTTON_RIGHT == me.getNativeButton()) {
                directDownload = true;//from   w w  w. j a v a  2s  .c om
            }

            final AttachmentPanel aPanel = new AttachmentPanel(aTO, mailxelService, mailxelPanel,
                    directDownload);
            if (null != bodyPanel) {
                bodyPanel.add(aPanel, UIUtil.shorten(aTO.name));
                // bodyPanel.selectTab(bodyPanel.getWidgetCount() - 1);
            } else {
                final PopupWindow pWin = new PopupWindow(aTO.name, aPanel, mailxelPanel);
                int x = getAbsoluteLeft();
                int y = getAbsoluteTop();
                pWin.setPopupPosition(x, y);
                pWin.show();
            }
        }
    });

    DeletableItem<AttachmentTO> di = new DeletableItem<AttachmentTO>(icon, aTO, this);
    items.add(di);

    add(icon);
}

From source file:ch.heftix.mailxel.client.CategorizationToolbar.java

License:Open Source License

public CategorizationToolbar(final HasPrevNext prevNextProvider, final MailDetailDisplay mailDetailDisplay,
        final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    this.prevNextProvider = prevNextProvider;
    this.mailDetailDisplay = mailDetailDisplay;

    final AsyncCallback<Void> markCatCallback = new AsyncCallback<Void>() {

        public void onSuccess(Void result) {
            // mailxelPanel.setWorking(false);
            showNext();//from ww w.j  a  v a2s  . c o  m
            mailxelPanel.updateMailCounts();
        }

        public void onFailure(Throwable caught) {
            // mailxelPanel.setWorking(false);
            mailxelPanel.statusError("set categories failed", caught);
        }
    };

    Image fwd = new Image("img/resultset_next.png");
    fwd.setTitle("Next");
    fwd.setStylePrimaryName("mailxel-toolbar-item");
    fwd.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            showNext();
        }
    });

    Image prev = new Image("img/resultset_previous.png");
    prev.setTitle("Next");
    prev.setStylePrimaryName("mailxel-toolbar-item");
    prev.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            showPrev();
        }
    });

    Image scheduleForLater = new Image("img/clock_go.png");
    scheduleForLater.setTitle("Schedule for Later");
    scheduleForLater.setStylePrimaryName("mailxel-toolbar-item");
    scheduleForLater.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            if (currentMessageId > 0) {
                mailxelService.markStatus(currentMessageId, 999, markCatCallback);
            }
        }
    });

    // Image scheduleForToday = new Image("img/target.png");
    // scheduleForToday.setTitle("Schedule for Today");
    // scheduleForToday.setStylePrimaryName("mailxel-toolbar-item");
    // scheduleForToday.addClickHandler(new ClickHandler() {
    //
    // public void onClick(ClickEvent sender) {
    // if (currentMessageId > 0) {
    // mailxelService.markStatus(currentMessageId, 992, markCatCallback);
    // }
    // }
    // });

    Image imgLike = new Image("img/star-small.png");
    imgLike.setTitle("Like");
    imgLike.setStylePrimaryName("mailxel-toolbar-item");
    imgLike.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            if (currentMessageId > 0) {
                mailxelService.markStatus(currentMessageId, 989, markCatCallback);
            }
        }
    });

    Image ignore = new Image("img/ignore.png");
    ignore.setTitle("Ignore");
    ignore.setStylePrimaryName("mailxel-toolbar-item");
    ignore.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            if (currentMessageId > 0) {
                mailxelService.markStatus(currentMessageId, 994, markCatCallback);
            }
        }
    });

    Image tookNote = new Image("img/eye.png");
    tookNote.setTitle("Took Note");
    tookNote.setStylePrimaryName("mailxel-toolbar-item");
    tookNote.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            if (currentMessageId > 0) {
                mailxelService.markStatus(currentMessageId, 993, markCatCallback);
            }
        }
    });

    Image waitForAnswer = new Image("img/hourglass.png");
    waitForAnswer.setTitle("waiting for answer");
    waitForAnswer.setStylePrimaryName("mailxel-toolbar-item");
    waitForAnswer.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            if (currentMessageId > 0) {
                mailxelService.markStatus(currentMessageId, 998, markCatCallback);
            }
        }
    });

    Image done = new Image("img/tick.png");
    done.setTitle("task completed");
    done.setStylePrimaryName("mailxel-toolbar-item");
    done.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            if (currentMessageId > 0) {
                mailxelService.markStatus(currentMessageId, 997, markCatCallback);
            }
        }
    });

    Image trash = new Image("img/bin.png");
    trash.setTitle("trash");
    trash.setStylePrimaryName("mailxel-toolbar-item");
    trash.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            if (currentMessageId > 0) {
                List<Integer> ids = new ArrayList<Integer>();
                ids.add(currentMessageId);
                mailxelService.markAsDeleted(ids, markCatCallback);
            }
        }
    });

    CategorySuggestOracle oracle = new CategorySuggestOracle(mailxelService);
    final SuggestBox gtdSb = new SuggestBox(oracle);
    gtdSb.setWidth("50px");
    gtdSb.setTitle("add category");

    Image categorize = new Image("img/categorize.png");
    categorize.setTitle("categorize");
    categorize.setStylePrimaryName("mailxel-toolbar-item");
    categorize.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            String gtd = gtdSb.getText();
            if (currentMessageId > 0 && null != gtd) {
                List<Integer> ids = new ArrayList<Integer>();
                ids.add(currentMessageId);
                mailxelService.updateCategories(ids, gtd, markCatCallback);
            }
        }
    });

    HorizontalPanel gtdBar = new HorizontalPanel();
    gtdBar.add(gtdSb);
    gtdBar.add(categorize);

    add(prev);
    add(scheduleForLater);
    //      add(scheduleForToday);
    add(imgLike);
    add(waitForAnswer);
    add(done);
    add(tookNote);
    add(ignore);
    add(trash);
    add(gtdBar);
    add(fwd);
}

From source file:ch.heftix.mailxel.client.CategoryOverviewGrid.java

License:Open Source License

public CategoryOverviewGrid(final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    HorizontalPanel toolbar = new HorizontalPanel();

    Image save = new Image("img/save.png");
    save.setTitle("Save");
    save.setStylePrimaryName("mailxel-toolbar-item");
    save.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            final StatusItem si = mailxelPanel.statusStart("category update");

            List<Category> categoriesToSave = new ArrayList<Category>();

            int len = grid.getRowCount();
            for (int i = FIRST_PAYLOAD_ROW; i < len; i++) {
                TextBoxWChangeDetection tbS = (TextBoxWChangeDetection) grid.getWidget(i, 0);
                if (null != tbS && tbS.isDirty()) {
                    // add to save list
                    Category existing = categories.get(i - FIRST_PAYLOAD_ROW);
                    existing.name = tbS.getText();
                    categoriesToSave.add(existing);
                }/*from  w w w.  j  a v a 2  s .com*/
            }

            mailxelService.saveCategories(categoriesToSave, new AsyncCallback<Void>() {

                public void onFailure(Throwable caught) {
                    si.error(caught);
                }

                public void onSuccess(Void result) {
                    si.done();
                }
            });
        }
    });

    toolbar.add(save);

    Image addCategory = new Image("img/plus.png");
    addCategory.setTitle("New Category");
    addCategory.setStylePrimaryName("mailxel-toolbar-item");
    addCategory.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {
            Category cat = new Category();
            cat.id = Constants.UNDEFINED_ID;
            cat.name = "new category";
            categories.add(cat);
            updateGrid(categories);
        }
    });
    toolbar.add(addCategory);

    add(toolbar);

    final TextBox category = new TextBox();
    category.setWidth("400px");

    // header
    grid.setText(LABEL_ROW, 0, "Category");

    final MailxelAsyncCallback<List<Category>> callback = new MailxelAsyncCallback<List<Category>>() {

        private StatusItem si = null;

        public void setStatusItem(StatusItem statusItem) {
            this.si = statusItem;
        }

        public void onSuccess(List<Category> result) {

            categories = result;
            int row = updateGrid(result);
            si.done("found " + Integer.toString(row - FIRST_PAYLOAD_ROW) + " categories.", 0);
        }

        public void onFailure(Throwable caught) {
            si.error(caught);
        }
    };

    // final KeyboardListenerAdapter kbla = new KeyboardListenerAdapter() {
    //
    // public void onKeyPress(Widget sender, char keyCode, int modifiers) {
    // if (KEY_ENTER == keyCode) {
    // String snTxt = UIUtil.trimNull(category.getText());
    //
    // mailxelPanel.setStatus("category search started");
    //
    // mailxelService.searchCategories(snTxt, callback);
    // }
    // }
    // };

    final KeyPressHandler kbla = new KeyPressHandler() {

        public void onKeyPress(KeyPressEvent event) {
            if (KeyCodes.KEY_ENTER == event.getCharCode()) {
                String snTxt = UIUtil.trimNull(category.getText());

                StatusItem si = mailxelPanel.statusStart("category search");
                callback.setStatusItem(si);
                mailxelService.searchCategories(snTxt, callback);

            }
        }
    };

    category.addKeyPressHandler(kbla);

    grid.setWidget(HEADER_ROW_1, 0, category);

    add(grid);
}

From source file:ch.heftix.mailxel.client.ConfigGrid.java

License:Open Source License

public ConfigGrid(final MailServiceAsync mailxelService, final MailxelPanel mailxelPanel) {

    this.mailxelService = mailxelService;
    this.mailxelPanel = mailxelPanel;

    lbu.add("Production", LOGConstants.PRODUCTION);
    lbu.add("Test", LOGConstants.TEST);
    lbu.add("Development", LOGConstants.DEV);

    lBUAddressDisplay.add("Shortname", AddressTOUtil.DISPLAY_SHORTNAME);
    lBUAddressDisplay.add("Name", AddressTOUtil.DISPLAY_NAME);
    lBUAddressDisplay.add("Address", AddressTOUtil.DISPLAY_ADDRESS);

    // save//  www .j a va2 s.  co  m
    HorizontalPanel toolbar = new HorizontalPanel();
    Image save = new Image("img/save.png");
    save.setTitle("Save");
    save.setStylePrimaryName("mailxel-toolbar-item");
    save.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            final ConfigTO cTO = new ConfigTO();

            cTO.localstore = textBoxes[1][ILOCALSTORE].getText();
            cTO.me = textBoxes[1][IME].getText();
            cTO.replyAddressDisplayType = lBUAddressDisplay.getSelectedValue().intValue();
            cTO.sentHandlingBCC = checkBoxes[1][SH_BCC].getValue();
            cTO.sentHandlingStoreLocally = checkBoxes[1][SH_COPY_LOCAL].getValue();
            cTO.sentHandlingCopySent = checkBoxes[1][SH_COPY_SENT].getValue();
            cTO.sentHandlingCopyAccountName = textBoxes[1][SH_COPY_SENT_ACCOUNT].getText();
            cTO.sentHandlingCopyFolderName = textBoxes[1][SH_COPY_SENT_FOLDER].getText();

            String tmp = textBoxes[1][IMAXSEARCHROWS].getText();
            cTO.maxSearchRows = ListUtil.parse(tmp, 50);

            tmp = textBoxes[1][IMAXADDRESSSUGGESTROWS].getText();
            cTO.maxAddressSuggestions = ListUtil.parse(tmp, 10);

            cTO.logConfiguration = lbu.getSelectedValue().intValue();
            cTO.replyAddressDisplayType = lBUAddressDisplay.getSelectedValue().intValue();

            cTO.displayTime = checkBoxes[1][SH_DISPLAY_TIME].getValue();

            cTO.explcitWildcards = checkBoxes[1][SH_EXPLICIT_WILDCARDS].getValue();
            tmp = textBoxes[1][SH_MAX_MAIL_DOWNLOAD_PER_FOLDER].getText();
            cTO.maxMailDownloadsPerFolder = ListUtil.parse(tmp, 100);

            tmp = textBoxes[1][SH_MAILDOWNLOAD_DELAY].getText();
            cTO.downloadMailDelay = ListUtil.parse(tmp, 0);

            int col = 3;

            cTO.smtpHost = textBoxes[col][IHOST].getText();
            cTO.smtpPort = textBoxes[col][IPORT].getText();
            cTO.smtpUser = textBoxes[col][IUSER].getText();

            List<AccountConfigTO> accounts = new ArrayList<AccountConfigTO>();
            List<String> accountNames = new ArrayList<String>();

            int numAccounts = textBoxes.length - 4;

            for (int i = 0; i < numAccounts; i++) {

                col++;

                String accountName = textBoxes[col][INAME].getText();
                AccountConfigTO aTO = new AccountConfigTO();
                aTO.name = accountName;
                aTO.server = textBoxes[col][IHOST].getText();
                aTO.protocol = textBoxes[col][IPROTOCOL].getText();
                aTO.isSSL = checkBoxes[col][ISSL].getValue();
                aTO.port = textBoxes[col][IPORT].getText();
                aTO.scannedfolders = ListUtil.getFromComaSeparated(textBoxes[col][IFOLDERS].getText());
                aTO.excludedfolders = ListUtil.getFromComaSeparated(textBoxes[col][IEXCLUDE].getText());
                aTO.user = textBoxes[col][IUSER].getText();
                aTO.reorgRules = ListUtil.getFromComaSeparated(textBoxes[col][IREORGRULE].getText());

                accountNames.add(accountName);
                accounts.add(aTO);
            }

            String[] aNames = new String[accountNames.size()];
            accountNames.toArray(aNames);

            cTO.accountNames = aNames;

            AccountConfigTO[] aTOs = new AccountConfigTO[accounts.size()];
            accounts.toArray(aTOs);

            cTO.accounts = aTOs;

            final StatusItem si = mailxelPanel.statusStart("saving configuration");

            mailxelService.saveConfig(cTO, new AsyncCallback<Void>() {

                public void onFailure(Throwable caught) {
                    si.error(caught);
                }

                public void onSuccess(Void result) {
                    si.done();
                    mailxelPanel.setConfig(cTO);
                    // mailxelPanel.closeTab(ConfigGrid.this);
                }
            });

        }
    });

    Image addAccount = new Image("img/server_add.png");
    addAccount.setTitle("New Account");
    addAccount.setStylePrimaryName("mailxel-toolbar-item");
    addAccount.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent sender) {

            grid.clear();
            ConfigTO cTO = mailxelPanel.getConfig();
            addNewAccount(cTO);
            fillGrid(cTO);
        }
    });

    ColumnFormatter cf = grid.getColumnFormatter();
    cf.setStylePrimaryName(0, "col-bg");

    RowFormatter rf = grid.getRowFormatter();
    for (int i = 1; i < INUMROWS; i = i + 2) {
        rf.setStylePrimaryName(i, "row-bg");
    }

    toolbar.add(save);
    toolbar.add(addAccount);
    toolbar.add(status);

    add(toolbar);

    add(grid);

    ConfigTO cTO = mailxelPanel.getConfig();
    fillGrid(cTO);

}

From source file:ch.heftix.mailxel.client.DeletableItem.java

License:Open Source License

public DeletableItem(final Widget widget, final T payload, final ItemDeletionHandler<T> deletionHandler) {
    this.payload = payload;
    add(widget);/*from   w w w  .j  a  v  a2 s . c o m*/
    Image icon = new Image("img/close.png");
    icon.addClickHandler(new ClickHandler() {

        public void onClick(ClickEvent event) {
            deletionHandler.onDeletion(DeletableItem.this);
        }
    });
    add(icon);
}