/** * Internal method which is called when the user clicks on an editable title field. * * <p> */ protected void editTitle() { m_title.setVisible(false); final TextBox box = new TextBox(); box.setText(m_title.getText()); box.getElement().setAttribute("size", "45"); box.addStyleName(I_CmsInputLayoutBundle.INSTANCE.inputCss().labelInput()); box.addStyleName(I_CmsLayoutBundle.INSTANCE.listItemWidgetCss().titleInput()); final String originalTitle = m_title.getText(); // wrap the boolean flag in an array so we can change it from the event handlers final boolean[] checked = new boolean[] {false}; box.addBlurHandler( new BlurHandler() { /** * @see * com.google.gwt.event.dom.client.BlurHandler#onBlur(com.google.gwt.event.dom.client.BlurEvent) */ public void onBlur(BlurEvent event) { if (checked[0]) { return; } onEditTitleTextBox(box); checked[0] = true; } }); box.addKeyPressHandler( new KeyPressHandler() { /** * @see * com.google.gwt.event.dom.client.KeyPressHandler#onKeyPress(com.google.gwt.event.dom.client.KeyPressEvent) */ public void onKeyPress(KeyPressEvent event) { if (checked[0]) { return; } int keycode = event.getNativeEvent().getKeyCode(); if ((keycode == 10) || (keycode == 13)) { onEditTitleTextBox(box); checked[0] = true; } if (keycode == 27) { box.setText(originalTitle); onEditTitleTextBox(box); checked[0] = true; } } }); m_titleRow.insert(box, 1); box.setFocus(true); }
/** * Initializes the widget given a map of select options. * * <p>The keys of the map are the values of the select options, while the values of the map are * the labels which should be used for the checkboxes. * * @param items the map of select options */ protected void init(Map<String, String> items) { initWidget(m_panel); m_items = new LinkedHashMap<String, String>(items); m_panel.setStyleName(I_CmsInputLayoutBundle.INSTANCE.inputCss().multiCheckBox()); m_panel.addStyleName(I_CmsLayoutBundle.INSTANCE.generalCss().textMedium()); for (Map.Entry<String, String> entry : items.entrySet()) { String value = entry.getValue(); CmsCheckBox checkbox = new CmsCheckBox(value); // wrap the check boxes in FlowPanels to arrange them vertically FlowPanel checkboxWrapper = new FlowPanel(); checkboxWrapper.add(checkbox); m_panel.add(checkboxWrapper); } m_panel.add(m_error); }