X-Git-Url: https://gerrit.simantics.org/r/gitweb?a=blobdiff_plain;f=bundles%2Forg.simantics.debug.ui%2Fsrc%2Forg%2Fsimantics%2Fdebug%2Fui%2FGraphDebuggerView.java;h=1840d2e62aa7f2377bcc143ea053cdb97562b509;hb=refs%2Fchanges%2F38%2F238%2F2;hp=31745691ea813c29736cde62ac73484840cc069a;hpb=969bd23cab98a79ca9101af33334000879fb60c5;p=simantics%2Fplatform.git diff --git a/bundles/org.simantics.debug.ui/src/org/simantics/debug/ui/GraphDebuggerView.java b/bundles/org.simantics.debug.ui/src/org/simantics/debug/ui/GraphDebuggerView.java index 31745691e..1840d2e62 100644 --- a/bundles/org.simantics.debug.ui/src/org/simantics/debug/ui/GraphDebuggerView.java +++ b/bundles/org.simantics.debug.ui/src/org/simantics/debug/ui/GraphDebuggerView.java @@ -1,249 +1,249 @@ -/******************************************************************************* - * Copyright (c) 2007, 2010 Association for Decentralized Information Management - * in Industry THTH ry. - * All rights reserved. This program and the accompanying materials - * are made available under the terms of the Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * VTT Technical Research Centre of Finland - initial API and implementation - * Semantum Oy - index based searching and graph manipulation (#4255) - *******************************************************************************/ -package org.simantics.debug.ui; - -import org.eclipse.core.runtime.IStatus; -import org.eclipse.core.runtime.Status; -import org.eclipse.jface.action.Action; -import org.eclipse.jface.action.IAction; -import org.eclipse.jface.action.IToolBarManager; -import org.eclipse.jface.action.Separator; -import org.eclipse.swt.SWT; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.ui.IActionBars; -import org.eclipse.ui.ISharedImages; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.part.ViewPart; -import org.simantics.Simantics; -import org.simantics.db.Resource; -import org.simantics.db.Session; -import org.simantics.db.exception.DatabaseException; -import org.simantics.debug.ui.internal.Activator; -import org.simantics.debug.ui.internal.DebugUtils; -import org.simantics.ui.SimanticsUI; -import org.simantics.ui.workbench.ResourceInput; -import org.simantics.utils.ui.BundleUtils; -import org.simantics.utils.ui.ErrorLogger; -import org.simantics.utils.ui.LayoutUtils; - -public class GraphDebuggerView extends ViewPart { - - public static final String VIEW_ID = "org.simantics.debug.graphDebugger"; - -// private final boolean DEFAULT_RECYCLE_VIEW = true; - - private ResourceInput input; - - private Session session; - - private GraphDebugger debugger; - -// private IAction recycleToggle; - private IAction backAction; - private IAction forwardAction; - private IAction refreshAction; - private IAction findAction; - private IAction addStatementAction; - private IAction addResourceAction; - private IAction homeAction; - - @Override - public void createPartControl(Composite parent) { -// System.out.println("koss: " + getViewSite().getSecondaryId()); - session = SimanticsUI.getSession(); - - // Initialize input - String sid = getViewSite().getSecondaryId(); - Resource r = null; - if (sid != null) { - input = ResourceInput.unmarshall(sid); - try { - r = input.toResource(session); - } catch (DatabaseException e) { - ErrorLogger.defaultLogError(e); - } - } - - // Create UI - parent.setLayout(LayoutUtils.createNoBorderGridLayout(1)); - debugger = new GraphDebugger(parent, SWT.NONE, session, r, getSite()); - debugger.defaultInitializeUI(); - - // Contribute actions - makeActions(); - contributeActions(getViewSite().getActionBars()); - updateActionStates(); - } - - @Override - public void dispose() { - super.dispose(); - } - - private void makeActions() { -// recycleToggle = new RecycleToggle(); -// recycleToggle.setChecked(DEFAULT_RECYCLE_VIEW); - - backAction = new BackAction(); - forwardAction = new ForwardAction(); - refreshAction = new RefreshAction(); - findAction = new FindAction(); - addStatementAction = new AddStatementAction(); - addResourceAction = new AddResourceAction(); - homeAction = new HomeAction(); - } - - private void contributeActions(IActionBars actionBars) { - IToolBarManager toolBar = actionBars.getToolBarManager(); - toolBar.add(backAction); - toolBar.add(forwardAction); - toolBar.add(new Separator()); - toolBar.add(refreshAction); - toolBar.add(new Separator()); - toolBar.add(findAction); - toolBar.add(addStatementAction); - toolBar.add(addResourceAction); - toolBar.add(new Separator()); - toolBar.add(homeAction); - -// toolBar.add(recycleToggle); - } - - @Override - public void setFocus() { - if (debugger != null) - debugger.setFocus(); - } - - private void refreshBrowser() { - debugger.refreshBrowser(); - } - -// class RecycleToggle extends Action { -// public RecycleToggle() { -// super("Open New Views", Action.AS_CHECK_BOX); -// setImageDescriptor(Activator.getImageDescriptor("icons/reload.gif")); -// setToolTipText("Toggles whether or not to open new views when resource links are clicked."); -// } -// } -// - class RefreshAction extends Action { - public RefreshAction() { - super("Refresh", BundleUtils.getImageDescriptorFromPlugin(SimanticsUI.PLUGIN_ID, "icons/refresh.gif")); - setToolTipText("Refresh"); - } - @Override - public void run() { - refreshBrowser(); - } - } - - class BackAction extends Action { - public BackAction() { - super("Back", Action.AS_PUSH_BUTTON); - setToolTipText("Back"); - setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_BACK)); - setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_BACK_DISABLED)); - } - @Override - public void run() { - back(); - } - } - - class ForwardAction extends Action { - public ForwardAction() { - super("Forward", Action.AS_PUSH_BUTTON); - setToolTipText("Forward"); - setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD)); - setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD_DISABLED)); - } - @Override - public void run() { - forward(); - } - } - - class HomeAction extends Action { - public HomeAction() { - super("Home", Action.AS_PUSH_BUTTON); - setToolTipText("Navigate to root library"); - setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ETOOL_HOME_NAV)); - setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ETOOL_HOME_NAV_DISABLED)); - } - @Override - public void run() { - navigateHome(); - } - } - - class FindAction extends Action { - public FindAction() { - super("Find", BundleUtils.getImageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/cog_blue.png")); - setToolTipText("Find Resource"); - } - @Override - public void run() { - DebugUtils.find(Simantics.getSession(), debugger); - } - } - - class AddStatementAction extends Action { - public AddStatementAction() { - super("AddStatement", BundleUtils.getImageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/cog_add.png")); - setToolTipText("Add Statement Between Existing Resources"); - } - @Override - public void run() { - try { - DebugUtils.addStatement(Simantics.getSession(), debugger); - } catch (DatabaseException e) { - Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e)); - } - } - } - - class AddResourceAction extends Action { - public AddResourceAction() { - super("AddResource", BundleUtils.getImageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/cog_add.png")); - setToolTipText("Add New Related Resource"); - } - @Override - public void run() { - try { - DebugUtils.addResource(Simantics.getSession(), debugger); - } catch (DatabaseException e) { - Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e)); - } - } - } - - private void back() { - debugger.back(); - } - - private void forward() { - debugger.forward(); - } - - private void navigateHome() { - Resource rootLibrary = session.getRootLibrary(); - debugger.changeLocation(rootLibrary); - } - - private void updateActionStates() { - backAction.setEnabled(debugger.hasBackHistory()); - forwardAction.setEnabled(debugger.hasForwardHistory()); - } - -} +/******************************************************************************* + * Copyright (c) 2007, 2010 Association for Decentralized Information Management + * in Industry THTH ry. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * VTT Technical Research Centre of Finland - initial API and implementation + * Semantum Oy - index based searching and graph manipulation (#4255) + *******************************************************************************/ +package org.simantics.debug.ui; + +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.jface.action.Action; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.action.IToolBarManager; +import org.eclipse.jface.action.Separator; +import org.eclipse.swt.SWT; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.ui.IActionBars; +import org.eclipse.ui.ISharedImages; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.part.ViewPart; +import org.simantics.Simantics; +import org.simantics.db.Resource; +import org.simantics.db.Session; +import org.simantics.db.exception.DatabaseException; +import org.simantics.debug.ui.internal.Activator; +import org.simantics.debug.ui.internal.DebugUtils; +import org.simantics.ui.SimanticsUI; +import org.simantics.ui.workbench.ResourceInput; +import org.simantics.utils.ui.BundleUtils; +import org.simantics.utils.ui.ErrorLogger; +import org.simantics.utils.ui.LayoutUtils; + +public class GraphDebuggerView extends ViewPart { + + public static final String VIEW_ID = "org.simantics.debug.graphDebugger"; + +// private final boolean DEFAULT_RECYCLE_VIEW = true; + + private ResourceInput input; + + private Session session; + + private GraphDebugger debugger; + +// private IAction recycleToggle; + private IAction backAction; + private IAction forwardAction; + private IAction refreshAction; + private IAction findAction; + private IAction addStatementAction; + private IAction addResourceAction; + private IAction homeAction; + + @Override + public void createPartControl(Composite parent) { +// System.out.println("koss: " + getViewSite().getSecondaryId()); + session = SimanticsUI.getSession(); + + // Initialize input + String sid = getViewSite().getSecondaryId(); + Resource r = null; + if (sid != null) { + input = ResourceInput.unmarshall(sid); + try { + r = input.toResource(session); + } catch (DatabaseException e) { + ErrorLogger.defaultLogError(e); + } + } + + // Create UI + parent.setLayout(LayoutUtils.createNoBorderGridLayout(1)); + debugger = new GraphDebugger(parent, SWT.NONE, session, r, getSite()); + debugger.defaultInitializeUI(); + + // Contribute actions + makeActions(); + contributeActions(getViewSite().getActionBars()); + updateActionStates(); + } + + @Override + public void dispose() { + super.dispose(); + } + + private void makeActions() { +// recycleToggle = new RecycleToggle(); +// recycleToggle.setChecked(DEFAULT_RECYCLE_VIEW); + + backAction = new BackAction(); + forwardAction = new ForwardAction(); + refreshAction = new RefreshAction(); + findAction = new FindAction(); + addStatementAction = new AddStatementAction(); + addResourceAction = new AddResourceAction(); + homeAction = new HomeAction(); + } + + private void contributeActions(IActionBars actionBars) { + IToolBarManager toolBar = actionBars.getToolBarManager(); + toolBar.add(backAction); + toolBar.add(forwardAction); + toolBar.add(new Separator()); + toolBar.add(refreshAction); + toolBar.add(new Separator()); + toolBar.add(findAction); + toolBar.add(addStatementAction); + toolBar.add(addResourceAction); + toolBar.add(new Separator()); + toolBar.add(homeAction); + +// toolBar.add(recycleToggle); + } + + @Override + public void setFocus() { + if (debugger != null) + debugger.setFocus(); + } + + private void refreshBrowser() { + debugger.refreshBrowser(); + } + +// class RecycleToggle extends Action { +// public RecycleToggle() { +// super("Open New Views", Action.AS_CHECK_BOX); +// setImageDescriptor(Activator.getImageDescriptor("icons/reload.gif")); +// setToolTipText("Toggles whether or not to open new views when resource links are clicked."); +// } +// } +// + class RefreshAction extends Action { + public RefreshAction() { + super("Refresh", BundleUtils.getImageDescriptorFromPlugin(SimanticsUI.PLUGIN_ID, "icons/refresh.gif")); + setToolTipText("Refresh"); + } + @Override + public void run() { + refreshBrowser(); + } + } + + class BackAction extends Action { + public BackAction() { + super("Back", Action.AS_PUSH_BUTTON); + setToolTipText("Back"); + setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_BACK)); + setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_BACK_DISABLED)); + } + @Override + public void run() { + back(); + } + } + + class ForwardAction extends Action { + public ForwardAction() { + super("Forward", Action.AS_PUSH_BUTTON); + setToolTipText("Forward"); + setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD)); + setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_TOOL_FORWARD_DISABLED)); + } + @Override + public void run() { + forward(); + } + } + + class HomeAction extends Action { + public HomeAction() { + super("Home", Action.AS_PUSH_BUTTON); + setToolTipText("Navigate to root library"); + setImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ETOOL_HOME_NAV)); + setDisabledImageDescriptor(PlatformUI.getWorkbench().getSharedImages().getImageDescriptor(ISharedImages.IMG_ETOOL_HOME_NAV_DISABLED)); + } + @Override + public void run() { + navigateHome(); + } + } + + class FindAction extends Action { + public FindAction() { + super("Find", BundleUtils.getImageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/cog_blue.png")); + setToolTipText("Find Resource"); + } + @Override + public void run() { + DebugUtils.find(Simantics.getSession(), debugger); + } + } + + class AddStatementAction extends Action { + public AddStatementAction() { + super("AddStatement", BundleUtils.getImageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/cog_add.png")); + setToolTipText("Add Statement Between Existing Resources"); + } + @Override + public void run() { + try { + DebugUtils.addStatement(Simantics.getSession(), debugger); + } catch (DatabaseException e) { + Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e)); + } + } + } + + class AddResourceAction extends Action { + public AddResourceAction() { + super("AddResource", BundleUtils.getImageDescriptorFromPlugin(Activator.PLUGIN_ID, "icons/cog_add.png")); + setToolTipText("Add New Related Resource"); + } + @Override + public void run() { + try { + DebugUtils.addResource(Simantics.getSession(), debugger); + } catch (DatabaseException e) { + Activator.getDefault().getLog().log(new Status(IStatus.ERROR, Activator.PLUGIN_ID, e.getMessage(), e)); + } + } + } + + private void back() { + debugger.back(); + } + + private void forward() { + debugger.forward(); + } + + private void navigateHome() { + Resource rootLibrary = session.getRootLibrary(); + debugger.changeLocation(rootLibrary); + } + + private void updateActionStates() { + backAction.setEnabled(debugger.hasBackHistory()); + forwardAction.setEnabled(debugger.hasForwardHistory()); + } + +}