/** * 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.richtext; import com.google.gwt.event.dom.client.ClickEvent; import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.user.client.Window; 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.HasAlignment; import com.google.gwt.user.client.ui.HorizontalPanel; import com.google.gwt.user.client.ui.TextBox; import com.google.gwt.user.client.ui.VerticalPanel; import com.openkm.frontend.client.Main; /** * RichtTextPopup * * @author jllort * */ public class RichTextPopup extends DialogBox { public static final int NO_ACTION = 0; public static final int ACTION_ENTER_URL = 1; public static final int ACTION_ENTER_IMAGE_URL = 2; private VerticalPanel vPanel; private HorizontalPanel hPanel; private TextBox url; private Button cancelButton; private Button addButton; private int action = NO_ACTION; RichTextAction richTextAction; /** * RichTextPopup */ public RichTextPopup(RichTextAction richTextAction) { // Establishes auto-close when click outside super(false,true); this.richTextAction = richTextAction; setText(""); vPanel = new VerticalPanel(); hPanel = new HorizontalPanel(); HTML space3 = new HTML(""); hPanel.add(space3); hPanel.add(vPanel); HTML space4 = new HTML(""); hPanel.add(space4); HTML space = new HTML(""); vPanel.add(space); url = new TextBox(); url.setWidth("290"); vPanel.add(url); HTML space2 = new HTML(""); vPanel.add(space2); cancelButton = new Button(Main.i18n("button.cancel"), new ClickHandler() { @Override public void onClick(ClickEvent event) { hide(); } }); addButton = new Button(Main.i18n("button.add"), new ClickHandler() { @Override public void onClick(ClickEvent event) { execute(); hide(); } }); HorizontalPanel hPanel2 = new HorizontalPanel(); hPanel2.add(cancelButton); hPanel2.add(new HTML(" ")); hPanel2.add(addButton); vPanel.add(hPanel2); HTML space5 = new HTML(""); vPanel.add(space5); vPanel.setCellHorizontalAlignment(hPanel2, HasAlignment.ALIGN_CENTER); vPanel.setCellHeight(space, "5"); vPanel.setCellHeight(space2, "5"); vPanel.setCellHeight(space5, "5"); hPanel.setCellWidth(space3, "5"); hPanel.setCellWidth(space4, "5"); url.setStyleName("okm-Input"); cancelButton.setStyleName("okm-Button"); addButton.setStyleName("okm-Button"); super.hide(); setWidget(hPanel); } /** * langRefresh */ public void langRefresh() { cancelButton.setText(Main.i18n("button.cancel")); addButton.setText(Main.i18n("button.add")); } /** * setAction * * @param action */ public void setAction(int action) { this.action = action; switch (action) { case ACTION_ENTER_URL: setText(Main.i18n("richtext.add.url")); break; case ACTION_ENTER_IMAGE_URL: setText(Main.i18n("richtext.add.image.url")); break; } } /** * execute */ public void execute() { if (url.getText().startsWith("http://")) { switch (action) { case ACTION_ENTER_URL: richTextAction.insertURL(url.getText()); break; case ACTION_ENTER_IMAGE_URL: richTextAction.insertImageURL(url.getText()); break; } } } /** * Shows de popup */ public void show(){ url.setText("http://"); int left = (Window.getClientWidth()-300)/2; int top = (Window.getClientHeight()-125)/2; setPopupPosition(left,top); super.show(); } }