use of com.google.gwt.user.client.ui.Widget in project pentaho-platform by pentaho.
the class SolutionBrowserPanel method editFile.
public void editFile() {
if (filesListPanel.getSelectedFileItems() == null || filesListPanel.getSelectedFileItems().size() != 1) {
return;
}
RepositoryFile file = filesListPanel.getSelectedFileItems().get(0).getRepositoryFile();
if (file.getName().endsWith(".analysisview.xaction")) {
// $NON-NLS-1$
openFile(file, COMMAND.RUN);
} else {
// check to see if a plugin supports editing
ContentTypePlugin plugin = PluginOptionsHelper.getContentTypePlugin(file.getName());
if (plugin != null && plugin.hasCommand(COMMAND.EDIT)) {
// load the editor for this plugin
String editUrl = getPath() + "api/repos/" + pathToId(file.getPath()) + "/" + // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
(plugin != null && (plugin.getCommandPerspective(COMMAND.EDIT) != null) ? plugin.getCommandPerspective(COMMAND.EDIT) : "editor");
// See if it's already loaded
for (int i = 0; i < contentTabPanel.getTabCount(); i++) {
Widget w = contentTabPanel.getTab(i).getContent();
if (w instanceof IFrameTabPanel && ((IFrameTabPanel) w).getUrl().endsWith(editUrl)) {
// Already up, select and exit
contentTabPanel.selectTab(i);
return;
}
}
contentTabPanel.showNewURLTab(Messages.getString("editingColon") + file.getTitle(), Messages.getString("editingColon") + file.getTitle(), editUrl, // $NON-NLS-1$ //$NON-NLS-2$
true);
} else {
MessageDialogBox dialogBox = new // $NON-NLS-1$
MessageDialogBox(// $NON-NLS-1$
Messages.getString("error"), // $NON-NLS-1$
Messages.getString("cannotEditFileType"), true, false, true);
dialogBox.center();
}
}
}
use of com.google.gwt.user.client.ui.Widget in project pentaho-platform by pentaho.
the class FilePropertiesDialog method applyPanel.
/**
*/
private void applyPanel() {
ArrayList<RequestBuilder> requestBuilders = new ArrayList<RequestBuilder>();
for (int i = 0; i < propertyTabs.getTabCount(); i++) {
Widget w = propertyTabs.getTab(i).getContent();
if (w instanceof IFileModifier) {
// get requests from sub panels
if (((IFileModifier) w).prepareRequests() != null) {
requestBuilders.addAll(((IFileModifier) w).prepareRequests());
}
}
}
RequestCallback requestCallback;
// chain requests from subpanels using callbacks to try and avoid any StaleItemStateExceptions
for (int i = 0; i <= requestBuilders.size() - 1; i++) {
RequestBuilder requestBuilder = requestBuilders.get(i);
if (i < requestBuilders.size() - 1) {
final RequestBuilder nextRequest = requestBuilders.get(i + 1);
// This header is required to force Internet Explorer to not cache values from the GET response.
nextRequest.setHeader("If-Modified-Since", "01 Jan 1970 00:00:00 GMT");
requestCallback = new ChainedRequestCallback(nextRequest);
} else {
requestCallback = new RequestCallback() {
@Override
public void onError(Request request, Throwable th) {
WaitPopup.getInstance().setVisible(false);
MessageDialogBox dialogBox = // $NON-NLS-1$
new MessageDialogBox(Messages.getString("error"), th.toString(), false, false, true);
dialogBox.center();
}
@Override
public void onResponseReceived(Request arg0, Response arg1) {
WaitPopup.getInstance().setVisible(false);
if (arg1.getStatusCode() == Response.SC_OK) {
dirty = false;
// Refresh current folder or parent folder
PerspectiveManager.getInstance().setPerspective(PerspectiveManager.BROWSER_PERSPECTIVE);
GenericEvent ge = new GenericEvent();
ge.setEventSubType("RefreshFolderEvent");
ge.setStringParam(parentPath);
EventBusUtil.EVENT_BUS.fireEvent(ge);
} else {
MessageDialogBox dialogBox = new MessageDialogBox(Messages.getString("error"), Messages.getString("operationPermissionDenied"), false, false, // $NON-NLS-1$
true);
dialogBox.center();
}
}
};
}
requestBuilder.setCallback(requestCallback);
}
// start the chain
try {
if (!requestBuilders.isEmpty()) {
WaitPopup.getInstance().setVisible(true);
requestBuilders.get(0).send();
}
} catch (RequestException e) {
// ignored
}
}
use of com.google.gwt.user.client.ui.Widget in project pentaho-platform by pentaho.
the class MantleTabPanel method setContentEditSelected.
public void setContentEditSelected(boolean selected) {
IFrameTabPanel panel = getCurrentFrame();
if (panel != null) {
panel.setEditSelected(selected);
Widget selectTabContent = null;
if (getTab(getSelectedTabIndex()) != null) {
selectTabContent = getTab(getSelectedTabIndex()).getContent();
}
List<FileItem> selectedItems = SolutionBrowserPanel.getInstance().getFilesListPanel().getSelectedFileItems();
EventBusUtil.EVENT_BUS.fireEvent(new SolutionBrowserUndefinedEvent(selectTabContent, selectedItems));
}
}
use of com.google.gwt.user.client.ui.Widget in project pentaho-platform by pentaho.
the class MantleTabPanel method closeTab.
public void closeTab(final PentahoTab closeTab, final boolean invokePreTabCloseHook) {
if (closeTab.getContent() instanceof IFrameTabPanel) {
final Element frameElement = ((IFrameTabPanel) closeTab.getContent()).getFrame().getElement();
String frameId = frameElement.getAttribute("id").replaceAll("\"", "\\\"");
// #a"b1494409287116 need to be escaped to #a\"b1494409287116.
if (frameId.indexOf("\"") != -1) {
frameId = frameId.replaceAll("\"", "");
frameElement.setAttribute("id", frameId);
}
final String finalFrameId = frameId;
if (invokePreTabCloseHook && hasUnsavedChanges(frameElement)) {
// prompt user
VerticalPanel vp = new VerticalPanel();
// $NON-NLS-1$
vp.add(new Label(Messages.getString("confirmTabClose")));
final PromptDialogBox confirmDialog = new PromptDialogBox(Messages.getString("confirm"), Messages.getString("yes"), Messages.getString("no"), false, true, // $NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$
vp);
confirmDialog.setCallback(new IDialogCallback() {
public void cancelPressed() {
}
public void okPressed() {
fireCloseTab(finalFrameId);
((CustomFrame) ((IFrameTabPanel) closeTab.getContent()).getFrame()).removeEventListeners(frameElement);
clearClosingFrame(frameElement);
MantleTabPanel.super.closeTab(closeTab, invokePreTabCloseHook);
if (getTabCount() == 0) {
allTabsClosed();
Widget selectTabContent = null;
if (getTab(getSelectedTabIndex()) != null) {
selectTabContent = getTab(getSelectedTabIndex()).getContent();
}
List<FileItem> selectedItems = SolutionBrowserPanel.getInstance().getFilesListPanel().getSelectedFileItems();
EventBusUtil.EVENT_BUS.fireEvent(new SolutionBrowserCloseEvent(selectTabContent, selectedItems));
}
}
});
confirmDialog.center();
return;
}
fireCloseTab(finalFrameId);
((CustomFrame) ((IFrameTabPanel) closeTab.getContent()).getFrame()).removeEventListeners(frameElement);
clearClosingFrame(frameElement);
}
super.closeTab(closeTab, invokePreTabCloseHook);
// since we can't entirely reclaim the frame resources held, keep some around
// so we can minimize the extra leakage caused by constantly created more
// let's only keep 5 of these guys around so at least some of the resources
// can be cleaned up (maybe just wishful thinking)
Widget w = closeTab.getContent();
if (w instanceof IFrameTabPanel && freeFrames.size() < 5) {
// wipe out any file info so it doesn't impact future usages of this frame
SolutionFileInfo sfi = null;
IFrameTabPanel iFrameTabPanel = (IFrameTabPanel) w;
iFrameTabPanel.setFileInfo(sfi);
freeFrames.add(iFrameTabPanel);
}
if (getTabCount() == 0) {
allTabsClosed();
Widget selectTabContent = null;
if (getTab(getSelectedTabIndex()) != null) {
selectTabContent = getTab(getSelectedTabIndex()).getContent();
}
List<FileItem> selectedItems = SolutionBrowserPanel.getInstance().getFilesListPanel().getSelectedFileItems();
EventBusUtil.EVENT_BUS.fireEvent(new SolutionBrowserCloseEvent(selectTabContent, selectedItems));
}
}
use of com.google.gwt.user.client.ui.Widget in project pentaho-platform by pentaho.
the class MantleTabPanel method enableContentEdit.
public void enableContentEdit(boolean enable) {
IFrameTabPanel panel = getCurrentFrame();
if (panel != null) {
panel.setEditEnabled(enable);
Widget selectTabContent = null;
if (getTab(getSelectedTabIndex()) != null) {
selectTabContent = getTab(getSelectedTabIndex()).getContent();
}
List<FileItem> selectedItems = SolutionBrowserPanel.getInstance().getFilesListPanel().getSelectedFileItems();
EventBusUtil.EVENT_BUS.fireEvent(new SolutionBrowserUndefinedEvent(selectTabContent, selectedItems));
}
}
Aggregations