/** * OpenKM, Open Document Management System (http://www.openkm.com) * Copyright (c) 2006-2011 Paco Avila & Josep Llort * * No bytes were intentionally harmed during the development of this application. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License along * with this program; if not, write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. */ package com.openkm.frontend.client.widget.mainmenu; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.event.dom.client.KeyCodes; import com.google.gwt.event.dom.client.KeyPressEvent; import com.google.gwt.event.dom.client.KeyPressHandler; import com.google.gwt.user.client.ui.Button; import com.google.gwt.user.client.ui.DialogBox; import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.Label; import com.google.gwt.user.client.ui.ScrollPanel; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.openkm.frontend.client.Main; /** * BookmarkPopup * * @author jllort * */ public class BookmarkPopup extends DialogBox { private VerticalPanel vPanel; private Label name; private HorizontalPanel hPanel; private VerticalPanel valuesPanel; private TextBox textBox; private Button acceptButton; private Button cancelButton; private String nodePath = ""; private ScrollPanel scrollPanel; /** * BookmarkPopup */ public BookmarkPopup() { // Establishes auto-close when click outside super(false,true); vPanel = new VerticalPanel(); valuesPanel = new VerticalPanel(); name = new Label(Main.i18n("bookmark.name")); hPanel = new HorizontalPanel(); textBox = new TextBox(); textBox.setStyleName("okm-Input"); textBox.setVisibleLength(40); textBox.setMaxLength(90); textBox.addKeyPressHandler(new KeyPressHandler() { @Override public void onKeyPress(KeyPressEvent event) { if ((char)KeyCodes.KEY_ENTER == event.getCharCode() ) { if (!nodePath.equals("") && !textBox.getText().equals("")) { Main.get().mainPanel.topPanel.mainMenu.bookmark.add(nodePath, textBox.getText()); } reset(); hide(); } } }); cancelButton = new Button(Main.i18n("button.cancel"), new ClickHandler() { @Override public void onClick(ClickEvent event) { reset(); hide(); } } ); cancelButton.setStyleName("okm-Button"); acceptButton = new Button(Main.i18n("button.accept"), new ClickHandler() { @Override public void onClick(ClickEvent event) { if (!nodePath.equals("") && !textBox.getText().equals("")) { Main.get().mainPanel.topPanel.mainMenu.bookmark.add(nodePath, textBox.getText()); } reset(); hide(); } } ); acceptButton.setStyleName("okm-Button"); hPanel.add(cancelButton); hPanel.add(new HTML(" ")); hPanel.add(acceptButton); // TODO This is a workaround for a Firefox 2 bug // http://code.google.com/p/google-web-toolkit/issues/detail?id=891 // Table for solve some visualization problems scrollPanel = new ScrollPanel(textBox); scrollPanel.setAlwaysShowScrollBars(false); scrollPanel.setSize("100%","100%"); valuesPanel.add(name); valuesPanel.add(scrollPanel); valuesPanel.setCellHorizontalAlignment(name,HorizontalPanel.ALIGN_LEFT); valuesPanel.setCellHorizontalAlignment(scrollPanel,HorizontalPanel.ALIGN_LEFT); valuesPanel.setWidth("300"); vPanel.setWidth("310px"); vPanel.setHeight("100px"); vPanel.add(new HTML("<br>")); vPanel.add(valuesPanel); vPanel.add(new HTML("<br>")); vPanel.add(hPanel); vPanel.add(new HTML("<br>")); vPanel.setCellHorizontalAlignment(name, VerticalPanel.ALIGN_LEFT); vPanel.setCellHorizontalAlignment(valuesPanel, VerticalPanel.ALIGN_CENTER); vPanel.setCellHorizontalAlignment(hPanel, VerticalPanel.ALIGN_CENTER); vPanel.removeStyleDependentName("okm-DisableSelect"); center(); hide(); setWidget(vPanel); } /** * Language refresh */ public void langRefresh() { setText(Main.i18n("bookmark.label")); name.setText(Main.i18n("bookmark.name")); cancelButton.setText(Main.i18n("button.cancel")); acceptButton.setText(Main.i18n("button.accept")); } /** * Show the popup bookmark * */ public void show(String nodePath, String name) { setText(Main.i18n("bookmark.label")); this.nodePath = nodePath; textBox.setText(name); center(); textBox.setFocus(true); } /** * Reset values */ private void reset(){ nodePath = ""; textBox.setText(""); } }