/*
* GlobalDisplay.java
*
* Copyright (C) 2009-12 by RStudio, Inc.
*
* Unless you have received this program directly from RStudio pursuant
* to the terms of a commercial license agreement with RStudio, then
* this program is licensed to you under the terms of version 3 of the
* GNU Affero General Public License. This program is distributed WITHOUT
* ANY EXPRESS OR IMPLIED WARRANTY, INCLUDING THOSE OF NON-INFRINGEMENT,
* MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Please refer to the
* AGPL (http://www.gnu.org/licenses/agpl-3.0.txt) for more details.
*
*/
package org.rstudio.studio.client.common;
import com.google.gwt.user.client.Command;
import org.rstudio.core.client.MessageDisplay;
import org.rstudio.core.client.Point;
import org.rstudio.core.client.dom.WindowEx;
import org.rstudio.core.client.widget.*;
public abstract class GlobalDisplay extends MessageDisplay
{
public static class NewWindowOptions
{
public NewWindowOptions()
{
}
public String getName()
{
return name_;
}
public void setName(String name)
{
this.name_ = name;
}
public boolean isFocus()
{
return focus_;
}
public void setFocus(boolean focus)
{
this.focus_ = focus;
}
public OperationWithInput<WindowEx> getCallback()
{
return callback_;
}
public void setCallback(OperationWithInput<WindowEx> callback)
{
this.callback_ = callback;
}
public void setPosition(Point pos)
{
position_ = pos;
}
public Point getPosition()
{
return position_;
}
// only applicable in desktop mode--by default windows will not load
// non-local content
public void setAllowExternalNavigation(boolean allow)
{
allowExternalNavigation_ = allow;
}
public boolean allowExternalNavigation()
{
return allowExternalNavigation_;
}
// only applicable in desktop mode--by default windows showing web content
// get a basic web navigation toolbar
public void setShowDesktopToolbar(boolean show)
{
showDesktopToolbar_ = show;
}
public boolean showDesktopToolbar()
{
return showDesktopToolbar_;
}
private Point position_ = null;
private String name_ = "_blank";
private boolean focus_ = true;
private OperationWithInput<WindowEx> callback_;
private boolean allowExternalNavigation_ = false;
private boolean showDesktopToolbar_ = true;
}
public abstract void openWindow(String url);
public abstract void openWindow(String url, NewWindowOptions options);
public abstract void openProgressWindow(String name,
String message,
OperationWithInput<WindowEx> openOperation);
public abstract void openMinimalWindow(String url, int width, int height);
public abstract void openMinimalWindow(String url,
boolean showLocation,
int width,
int height);
public abstract void openMinimalWindow(String url,
boolean showLocation,
int width,
int height,
NewWindowOptions options);
public abstract void openWebMinimalWindow(String url,
boolean showLocation,
int width,
int height,
NewWindowOptions options);
public abstract void openSatelliteWindow(String name, int width, int height);
public abstract void openSatelliteWindow(String name, int width, int height,
NewWindowOptions options);
public abstract void openEmailComposeWindow(String to, String subject);
public abstract void showHtmlFile(String path);
public abstract void showWordDoc(String path);
public void openRStudioLink(String linkName)
{
openRStudioLink(linkName, true);
}
public abstract void openRStudioLink(String linkName,
boolean includeVersionInfo);
/**
* Shows a non-modal progress message. Execute the returned command
* to dismiss.
*/
public abstract Command showProgress(String message);
public abstract void showWarningBar(boolean severe, String message);
public abstract void hideWarningBar();
public abstract ProgressIndicator getProgressIndicator(String errorCaption);
}