Java tutorial
/*! * This program is free software; you can redistribute it and/or modify it under the * terms of the GNU Lesser General Public License, version 2.1 as published by the Free Software * Foundation. * * You should have received a copy of the GNU Lesser General Public License along with this * program; if not, you can obtain a copy at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html * or from the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. * * 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 Lesser General Public License for more details. * * Copyright (c) 2002-2013 Pentaho Corporation.. All rights reserved. */ package org.pentaho.mantle.client.commands; import com.google.gwt.http.client.URL; import com.google.gwt.user.client.ui.FormPanel; import com.google.gwt.user.client.ui.Hidden; import com.google.gwt.user.client.ui.NamedFrame; import com.google.gwt.user.client.ui.RootPanel; import org.pentaho.mantle.client.solutionbrowser.SolutionBrowserPanel; import org.pentaho.mantle.client.solutionbrowser.tabs.IFrameTabPanel; import org.pentaho.mantle.client.ui.tabs.MantleTabPanel; public class ExecuteUrlInNewTabCommand extends AbstractCommand { private String xml; private String url; private String tabName; private String tabToolTip; public ExecuteUrlInNewTabCommand() { setupNativeHooks(this); } public ExecuteUrlInNewTabCommand(String url, String xml, String tabName, String tabToolTip) { this(); this.xml = xml; this.url = url; this.tabName = tabName; this.tabToolTip = tabToolTip; } public static void setupNativeHooks() { new ExecuteUrlInNewTabCommand(); } private static native void setupNativeHooks(ExecuteUrlInNewTabCommand cmd) /*-{ $wnd.mantle_execute_url_in_new_tab = function(url, xml, tabName, tabToolTip) { //CHECKSTYLE IGNORE LineLength FOR NEXT 1 LINES cmd.@org.pentaho.mantle.client.commands.ExecuteUrlInNewTabCommand::executeInNewTab(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)(url, xml, tabName, tabToolTip); } }-*/; protected void performOperation() { MantleTabPanel contentTabPanel = SolutionBrowserPanel.getInstance().getContentTabPanel(); contentTabPanel.showNewURLTab(this.tabName, this.tabToolTip, "about:blank", false); //$NON-NLS-1$ NamedFrame namedFrame = ((IFrameTabPanel) contentTabPanel.getSelectedTab().getContent()).getFrame(); final FormPanel form = new FormPanel(namedFrame); RootPanel.get().add(form); form.setMethod(FormPanel.METHOD_POST); form.setAction(url); form.add(new Hidden("reportXml", URL.encode(xml))); //$NON-NLS-1$ form.submit(); ((IFrameTabPanel) contentTabPanel.getSelectedTab().getContent()).setForm(form); } protected void performOperation(final boolean feedback) { performOperation(); } /** * This method is called via JSNI */ private void executeInNewTab(String url, String xml, String tabName, String tabToolTip) { ExecuteUrlInNewTabCommand command = new ExecuteUrlInNewTabCommand(url, xml, tabName, tabToolTip); command.execute(); } }