|
From: <bea...@us...> - 2006-10-17 19:26:52
|
Revision: 296
http://svn.sourceforge.net/cishell/?rev=296&view=rev
Author: bearsfan
Date: 2006-10-17 12:26:48 -0700 (Tue, 17 Oct 2006)
Log Message:
-----------
Added support for viewing and saving from within the DataManager viewer
Modified Paths:
--------------
trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java
trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java
Modified: trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java
===================================================================
--- trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java 2006-10-17 17:04:38 UTC (rev 295)
+++ trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/AbstractDataManagerView.java 2006-10-17 19:26:48 UTC (rev 296)
@@ -91,10 +91,12 @@
private Map dataToDataGUIItemMap;
private AlgorithmFactory saveFactory;
+ private AlgorithmFactory viewFactory;
private DiscardListener discardListener;
private SaveListener saveListener;
+ private ViewListener viewListener;
public AbstractDataManagerView(String brandPluginID) {
manager = Activator.getDataManagerService();
@@ -102,8 +104,10 @@
dataToDataGUIItemMap = new HashMap();
if (manager == null) {
- Activator.getLogService().log(LogService.LOG_ERROR,
- "Data Manager Service unavailable!");
+ LogService log = Activator.getLogService();
+ if (log != null) {
+ log.log(LogService.LOG_ERROR, "Data Manager Service unavailable!");
+ }
}
}
@@ -133,15 +137,14 @@
MenuItem saveItem = new MenuItem(menu, SWT.PUSH);
saveItem.setText("Save");
- this.saveFactory = Activator.getSaveService();
- if (this.saveFactory != null) {
- saveListener = new SaveListener();
- saveItem.addListener(SWT.Selection, saveListener);
- }
- else {
- saveItem.setEnabled(false);
- }
+ saveListener = new SaveListener();
+ saveItem.addListener(SWT.Selection, saveListener);
+ MenuItem viewItem = new MenuItem(menu, SWT.PUSH);
+ viewItem.setText("View");
+ viewListener = new ViewListener();
+ viewItem.addListener(SWT.Selection, viewListener);
+
MenuItem renameItem = new MenuItem(menu, SWT.PUSH);
renameItem.setText("Rename");
renameItem.addListener(SWT.Selection, new Listener() {
@@ -185,7 +188,9 @@
public void bundleChanged(BundleEvent event) {
if (event.getType() == BundleEvent.STARTED) {
manager = Activator.getDataManagerService();
- manager.addDataManagerListener(this);
+ if (manager != null) {
+ manager.addDataManagerListener(this);
+ }
}
}
@@ -303,14 +308,38 @@
* their is an available Persister for the given model
*/
private void updateContextMenu(Data model) {
- // reset the enablement of the save context menu appropriately
- // boolean saveEnabled = (model.getData() != null) &&
- // !(IVC.getInstance().getPersistenceRegistry()
- // .getSupportingPersisters(model.getData()).isEmpty());
- boolean saveEnabled = false;
- menu.getItem(0).setEnabled(saveEnabled);
+ saveFactory = enableMenuItemCheck(saveFactory,
+ "org.cishell.reference.gui.persistence.save.Save", model, 0);
+ viewFactory = enableMenuItemCheck(viewFactory,
+ "org.cishell.reference.gui.persistence.view.FileView", model, 1);
}
+
+ private AlgorithmFactory enableMenuItemCheck(
+ AlgorithmFactory algorithmFactory, String service, Data model,
+ int menuNdx) {
+ boolean validSaveFactory = false;
+ if (algorithmFactory == null) {
+ algorithmFactory = Activator.getService(service);
+ if (algorithmFactory != null) {
+ validSaveFactory = true;
+ }
+ } else {
+ validSaveFactory = true;
+ }
+ boolean enabled = false;
+ if (validSaveFactory) {
+ Algorithm algorithm = algorithmFactory.createAlgorithm(
+ new Data[] { model }, new Hashtable(), Activator
+ .getCIShellContext());
+ if (algorithm != null) {
+ enabled = true;
+ }
+ }
+ menu.getItem(menuNdx).setEnabled(enabled);
+ return algorithmFactory;
+ }
+
/*
* Listens for selection in the GUI of data models by selecting their item
* in the tree and updates the ModelManager appropriately
@@ -445,17 +474,30 @@
private class SaveListener implements Listener {
public void handleEvent(Event event) {
- if (AbstractDataManagerView.this.saveFactory != null) {
- TreeItem[] selection = AbstractDataManagerView.this.tree.getSelection();
- Data data = ((DataGUIItem)selection[0].getData()).getModel();
- Algorithm algorithm = AbstractDataManagerView.this.saveFactory.createAlgorithm(new Data[]{data},
- new Hashtable(),
- Activator.getCIShellContext());
+ if (saveFactory != null) {
+ Data data[] = AbstractDataManagerView.this.manager
+ .getSelectedData();
+ Algorithm algorithm = saveFactory
+ .createAlgorithm(data, new Hashtable(), Activator
+ .getCIShellContext());
algorithm.execute();
}
}
}
+ private class ViewListener implements Listener {
+ public void handleEvent(Event event) {
+ if (viewFactory != null) {
+ Data data[] = AbstractDataManagerView.this.manager
+ .getSelectedData();
+ Algorithm algorithm = viewFactory
+ .createAlgorithm(data, new Hashtable(), Activator
+ .getCIShellContext());
+ algorithm.execute();
+ }
+ }
+ }
+
private class DiscardListener implements Listener {
public void handleEvent(Event event) {
TreeItem[] selection = AbstractDataManagerView.this.tree
Modified: trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java
===================================================================
--- trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java 2006-10-17 17:04:38 UTC (rev 295)
+++ trunk/clients/gui/org.cishell.reference.gui.datamanager/src/org/cishell/reference/gui/datamanager/Activator.java 2006-10-17 19:26:48 UTC (rev 296)
@@ -71,17 +71,23 @@
}
protected static LogService getLogService() {
- LogService log = (LogService) context.getService(
+ ServiceReference serviceReference = context.getServiceReference(DataManagerService.class.getName());
+ LogService log = null;
+
+ if (serviceReference != null) {
+ log = (LogService) context.getService(
context.getServiceReference(LogService.class.getName()));
+ }
return log;
}
- protected static AlgorithmFactory getSaveService() {
+ protected static AlgorithmFactory getService(String service) {
ServiceReference[] refs;
try {
refs = context.getServiceReferences(AlgorithmFactory.class.getName(),
- "(&("+Constants.SERVICE_PID+"=org.cishell.reference.gui.persistence.save.Save))");
+ "(&("+Constants.SERVICE_PID+"="+service+"))");
+ //"(&("+Constants.SERVICE_PID+"=org.cishell.reference.gui.persistence.save.Save))");
if (refs != null && refs.length > 0) {
return (AlgorithmFactory) context.getService(refs[0]);
} else {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|