Author: ruschein
Date: 2011-01-19 14:19:48 -0800 (Wed, 19 Jan 2011)
New Revision: 23514
Added:
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowUpdateService.java
core3/model-api/trunk/src/main/java/org/cytoscape/model/events/CyTableRowUpdateMicroListener.java
Removed:
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowChangeTracker.java
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MyTableRowChangeTracker.java
Modified:
core3/model-api/trunk/pom.xml
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context.xml
core3/model-impl/trunk/pom.xml
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
Turned the table creation/update event aggregation into a service using a micro
listener approach.
Modified: core3/model-api/trunk/pom.xml
===================================================================
--- core3/model-api/trunk/pom.xml 2011-01-19 18:50:43 UTC (rev 23513)
+++ core3/model-api/trunk/pom.xml 2011-01-19 22:19:48 UTC (rev 23514)
@@ -119,11 +119,6 @@
<type>test-jar</type>
<scope>test</scope>
</dependency>
- <dependency>
- <groupId>org.cytoscape</groupId>
- <artifactId>service-util</artifactId>
- <version>3.0.0-alpha2-SNAPSHOT</version>
- </dependency>
</dependencies>
Deleted:
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowChangeTracker.java
===================================================================
---
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowChangeTracker.java
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowChangeTracker.java
2011-01-19 22:19:48 UTC (rev 23514)
@@ -1,163 +0,0 @@
-package org.cytoscape.model;
-
-
-import java.util.ArrayList;
-import java.util.Dictionary;
-import java.util.HashMap;
-import java.util.Hashtable;
-import java.util.List;
-import java.util.Map;
-
-import org.cytoscape.event.CyEventHelper;
-import org.cytoscape.model.events.RowsAboutToChangeEvent;
-import org.cytoscape.model.events.RowsAboutToChangeListener;
-import org.cytoscape.model.events.RowsFinishedChangingEvent;
-import org.cytoscape.model.events.RowsFinishedChangingListener;
-import org.cytoscape.model.events.RowCreatedMicroListener;
-import org.cytoscape.model.events.RowSetMicroListener;
-import org.cytoscape.service.util.CyServiceRegistrar;
-
-
-/** This class simplifies tracking of CyRow creation and update events for a
single CyTable. In
- * order to utilise it, you must override the rowCreated() and rowsUpdated()
methods.
- */
-public abstract class CyTableRowChangeTracker
- implements RowCreatedMicroListener, RowsAboutToChangeListener,
RowsFinishedChangingListener
-{
- public static class RowUpdate {
- private final CyRow row;
- private final String columnName;
- private final Object newValue;
- private final Object newRawValue;
-
- RowUpdate(final CyRow row, final String columnName, final
Object newValue,
- final Object newRawValue)
- {
- this.row = row;
- this.columnName = columnName;
- this.newValue = newValue;
- this.newRawValue = newRawValue;
- }
-
- public final CyRow getRow() { return row; }
- public final String getColumnName() { return columnName; }
- public final Object getNewValue() { return newValue; }
- public final Object getNewRawValue() { return newRawValue; }
- }
-
- private final CyTable table;
- private final Map<CyRow, RowSetMicroListenerProxy>
rowToListenerProxyMap;
- private final CyEventHelper eventHelper;
- private final CyServiceRegistrar serviceRegistrar;
- private List<RowUpdate> rowUpdates;
- private int numConcurrentUpdaters;
-
- /** @param table the table whose row updates we're forwarding
- * @param eventHelper used to set up event tracking
- */
- public CyTableRowChangeTracker(final CyTable table, final CyEventHelper
eventHelper,
- final CyServiceRegistrar
serviceRegistrar)
- {
- this.table = table;
- this.eventHelper = eventHelper;
- this.serviceRegistrar = serviceRegistrar;
- this.rowToListenerProxyMap = new HashMap<CyRow,
RowSetMicroListenerProxy>();
- this.rowUpdates = new ArrayList<RowUpdate>();
- this.numConcurrentUpdaters = 0;
-
- final Dictionary emptyProps = new Hashtable();
- serviceRegistrar.registerService(this,
RowsAboutToChangeListener.class, emptyProps);
- serviceRegistrar.registerService(this,
RowsFinishedChangingListener.class, emptyProps);
-
- eventHelper.addMicroListener(this,
RowCreatedMicroListener.class, table);
-
- final List<CyRow> rows = table.getAllRows();
- for (final CyRow row : rows)
- rowToListenerProxyMap.put(row, new
RowSetMicroListenerProxy(this, eventHelper, row));
- }
-
- private final synchronized void rowUpdated(final CyRow row, final
String columnName,
- final Object newValue, final
Object newRawValue)
- {
- rowUpdates.add(new RowUpdate(row, columnName, newValue,
newRawValue));
- if (numConcurrentUpdaters == 0) {
- rowsUpdated(rowUpdates);
- rowUpdates.clear();
- }
- }
-
- @Override
- public final void handleRowCreated(final Object key) {
- final CyRow newRow = table.getRow(key);
- rowToListenerProxyMap.put(
- newRow, new RowSetMicroListenerProxy(this, eventHelper,
newRow));
- rowCreated(newRow);
- }
-
- @Override
- public final synchronized void handleEvent(final RowsAboutToChangeEvent
e) {
- if (e.getTable() == table)
- ++numConcurrentUpdaters;
- }
-
- @Override
- public final synchronized void handleEvent(final
RowsFinishedChangingEvent e) {
- if (e.getTable() == table) {
- --numConcurrentUpdaters;
- if (numConcurrentUpdaters == 0) {
- rowsUpdated(rowUpdates);
- rowUpdates.clear();
- }
- }
- }
-
- /** Override this to be notified of newly created rows.
- *
- * @param newRow the newly created row
- */
- public abstract void rowCreated(CyRow newRow);
-
- /** Override this to be notified of row updates.
- *
- * @param updates information about all the recent row changes
- */
- public abstract void rowsUpdated(List<RowUpdate> updates);
-
- /** Unregisters all listeners. */
- public final void cleanup() {
- eventHelper.removeMicroListener(this,
RowCreatedMicroListener.class, table);
- for (final RowSetMicroListenerProxy proxy :
rowToListenerProxyMap.values())
- proxy.cleanup();
-
- serviceRegistrar.unregisterService(this,
RowsFinishedChangingListener.class);
- serviceRegistrar.unregisterService(this,
RowsAboutToChangeListener.class);
- }
-
-
- private static class RowSetMicroListenerProxy implements
RowSetMicroListener {
- private final CyTableRowChangeTracker changeTracker;
- private final CyEventHelper eventHelper;
- private final CyRow row;
-
- RowSetMicroListenerProxy(final CyTableRowChangeTracker
changeTracker,
- final CyEventHelper eventHelper, final
CyRow row)
- {
- this.changeTracker = changeTracker;
- this.eventHelper = eventHelper;
- this.row = row;
-
- eventHelper.addMicroListener(this,
RowSetMicroListener.class, row);
- }
-
- @Override
- public void handleRowSet(final String columnName, final Object
newValue,
- final Object newRawValue)
- {
- changeTracker.rowUpdated(row, columnName, newValue,
newRawValue);
- }
-
- void cleanup() {
- eventHelper.removeMicroListener(this,
RowSetMicroListener.class, row);
- }
- }
-}
Added:
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowUpdateService.java
===================================================================
---
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowUpdateService.java
(rev 0)
+++
core3/model-api/trunk/src/main/java/org/cytoscape/model/CyTableRowUpdateService.java
2011-01-19 22:19:48 UTC (rev 23514)
@@ -0,0 +1,14 @@
+package org.cytoscape.model;
+
+
+import org.cytoscape.model.events.CyTableRowUpdateMicroListener;
+
+
+/** This service provides aggregated row creation/update events. It
guarantees that
+ * the handleRowCreations() methods of the listeners will be called before
+ * handleRowSets() methods of the listeners will be called.
+ */
+public interface CyTableRowUpdateService {
+ void startTracking(CyTableRowUpdateMicroListener listener, CyTable
table);
+ void stopTracking(CyTableRowUpdateMicroListener listener, CyTable
table);
+}
\ No newline at end of file
Added:
core3/model-api/trunk/src/main/java/org/cytoscape/model/events/CyTableRowUpdateMicroListener.java
===================================================================
---
core3/model-api/trunk/src/main/java/org/cytoscape/model/events/CyTableRowUpdateMicroListener.java
(rev 0)
+++
core3/model-api/trunk/src/main/java/org/cytoscape/model/events/CyTableRowUpdateMicroListener.java
2011-01-19 22:19:48 UTC (rev 23514)
@@ -0,0 +1,72 @@
+/*
+ Copyright (c) 2008, 2010, The Cytoscape Consortium (www.cytoscape.org)
+
+ This library is free software; you can redistribute it and/or modify it
+ under the terms of the GNU Lesser General Public License as published
+ by the Free Software Foundation; either version 2.1 of the License, or
+ any later version.
+
+ This library 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. The software and
+ documentation provided hereunder is on an "as is" basis, and the
+ Institute for Systems Biology and the Whitehead Institute
+ have no obligations to provide maintenance, support,
+ updates, enhancements or modifications. In no event shall the
+ Institute for Systems Biology and the Whitehead Institute
+ be liable to any party for direct, indirect, special,
+ incidental or consequential damages, including lost profits, arising
+ out of the use of this software and its documentation, even if the
+ Institute for Systems Biology and the Whitehead Institute
+ have been advised of the possibility of such damage. See
+ the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public License
+ along with this library; if not, write to the Free Software Foundation,
+ Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
+*/
+package org.cytoscape.model.events;
+
+
+import java.util.List;
+
+import org.cytoscape.model.CyTable;
+import org.cytoscape.model.CyRow;
+import org.cytoscape.event.CyMicroListener;
+
+
+/** Listener for aggregated row updates. */
+public interface CyTableRowUpdateMicroListener extends CyMicroListener {
+ public final static class RowSet {
+ private final CyRow row;
+ private final String column;
+ private final Object value;
+ private final Object rawValue;
+
+ public RowSet(final CyRow row, final String column, final
Object value,
+ final Object rawValue)
+ {
+ this.row = row;
+ this.column = column;
+ this.value = value;
+ this.rawValue = rawValue;
+ }
+
+ public CyRow getRow() { return row; }
+ public String getColumn() { return column; }
+ public Object getValue() { return value; }
+ public Object getRawValue() { return rawValue; }
+ }
+
+ /**
+ * @param table the table whose updates we would like to track
+ * @param newRows the list of new rows
+ */
+ void handleRowCreations(final CyTable table, final List<CyRow> newRows);
+
+ /**
+ * @param table the table whose updates we would like to track
+ * @param rowSets a list of row updates
+ */
+ void handleRowSets(final CyTable table, final List<RowSet> rowSets);
+}
Modified:
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
---
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-01-19 22:19:48 UTC (rev 23514)
@@ -5,12 +5,13 @@
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/osgi
http://www.springframework.org/schema/osgi/spring-osgi-1.0.xsd"
default-lazy-init="false">
-
<osgi:reference id="cyEventHelperServiceRef"
interface="org.cytoscape.event.CyEventHelper" />
<osgi:reference id="InterpreterRef"
interface="org.cytoscape.equations.Interpreter" />
+ <osgi:reference id="cyServiceRegistrarServiceRef"
+ interface="org.cytoscape.service.util.CyServiceRegistrar" />
<!-- Individual Service -->
<osgi:service id="cyNetworkFactoryService"
@@ -32,4 +33,8 @@
<osgi:service id="cyNetworkManagerService"
ref="cyNetworkManager"
interface="org.cytoscape.model.CyNetworkManager">
</osgi:service>
+
+ <osgi:service id="cyTableRowUpdateService"
+ ref="tableRowUpdateService"
interface="org.cytoscape.model.CyTableRowUpdateService">
+ </osgi:service>
</beans>
Modified:
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
---
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context.xml
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/model-impl/trunk/impl/src/main/resources/META-INF/spring/bundle-context.xml
2011-01-19 22:19:48 UTC (rev 23514)
@@ -35,5 +35,9 @@
</bean>
<bean id="cyRootNetworkFactory"
class="org.cytoscape.model.internal.CyRootNetworkFactoryImpl"/>
-
+
+ <bean id="tableRowUpdateService"
class="org.cytoscape.model.internal.CyTableRowUpdateServiceImpl">
+ <constructor-arg ref="cyEventHelperServiceRef" />
+ <constructor-arg ref="cyServiceRegistrarServiceRef" />
+ </bean>
</beans>
Modified: core3/model-impl/trunk/pom.xml
===================================================================
--- core3/model-impl/trunk/pom.xml 2011-01-19 18:50:43 UTC (rev 23513)
+++ core3/model-impl/trunk/pom.xml 2011-01-19 22:19:48 UTC (rev 23514)
@@ -104,6 +104,12 @@
<version>1.0-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
+ <dependency>
+ <groupId>org.cytoscape</groupId>
+ <artifactId>service-util</artifactId>
+ <version>3.0.0-alpha2-SNAPSHOT</version>
+ <scope>provided</scope>
+ </dependency>
</dependencies>
</project>
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
===================================================================
---
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2011-01-19 22:19:48 UTC (rev 23514)
@@ -23,37 +23,40 @@
import org.cytoscape.model.CyNetwork;
import org.cytoscape.model.CyRow;
import org.cytoscape.model.CyTable;
+import org.cytoscape.model.CyTableRowUpdateService;
import org.cytoscape.model.events.ColumnCreatedEvent;
import org.cytoscape.model.events.ColumnCreatedListener;
import org.cytoscape.model.events.ColumnDeletedEvent;
import org.cytoscape.model.events.ColumnDeletedListener;
+import org.cytoscape.model.events.CyTableRowUpdateMicroListener;
import org.cytoscape.service.util.CyServiceRegistrar;
public class BrowserTableModel
- implements TableModel, ColumnCreatedListener, ColumnDeletedListener
+ implements TableModel, ColumnCreatedListener, ColumnDeletedListener,
CyTableRowUpdateMicroListener
{
private static final int EOF = -1;
private static final int MAX_INITIALLY_VSIBLE_ATTRS = 10;
private final JTable table;
private final CyTable attrs;
private final EqnCompiler compiler;
+ private final CyTableRowUpdateService tableRowUpdateService;
private boolean tableHasBooleanSelected;
private List<AttrNameAndVisibility> attrNamesAndVisibilities;
private final List<TableModelListener> tableModelListeners;
- private final MyTableRowChangeTracker tableRowChangeTracker;
public BrowserTableModel(final JTable table, final CyEventHelper
eventHelper,
final CyTable attrs, final EqnCompiler
compiler,
- final CyServiceRegistrar serviceRegistrar)
+ final CyServiceRegistrar serviceRegistrar,
+ final CyTableRowUpdateService
tableRowUpdateService)
{
this.table = table;
this.attrs = attrs;
this.compiler = compiler;
+ this.tableRowUpdateService = tableRowUpdateService;
this.tableHasBooleanSelected =
attrs.getColumnTypeMap().get(CyNetwork.SELECTED) == Boolean.class;
this.tableModelListeners = new ArrayList<TableModelListener>();
- this.tableRowChangeTracker =
- new MyTableRowChangeTracker(attrs, eventHelper,
serviceRegistrar, this);
+ tableRowUpdateService.startTracking(this, attrs);
initAttrNamesAndVisibilities();
}
@@ -276,19 +279,23 @@
listener.tableChanged(event);
}
- void rowCreated(final CyRow row) {
- final int newRowIndex = mapRowToRowIndex(row);
- final TableModelEvent event
- = new TableModelEvent(this, newRowIndex, newRowIndex,
- TableModelEvent.ALL_COLUMNS,
TableModelEvent.INSERT);
- for (final TableModelListener listener : tableModelListeners)
- listener.tableChanged(event);
+ @Override
+ public void handleRowCreations(final CyTable table, final List<CyRow>
newRows) {
+ for (final CyRow row : newRows) {
+ final int newRowIndex = mapRowToRowIndex(row);
+ final TableModelEvent event
+ = new TableModelEvent(this, newRowIndex,
newRowIndex,
+
TableModelEvent.ALL_COLUMNS, TableModelEvent.INSERT);
+ for (final TableModelListener listener :
tableModelListeners)
+ listener.tableChanged(event);
+ }
}
- void handleRowUpdate(final CyRow row, final String columnName, final
Object newValue,
- final Object newRawValue)
- {
- handleRowValueUpdate(row, columnName, newValue, newRawValue);
+ @Override
+ public void handleRowSets(final CyTable table, final List<RowSet>
rowSets) {
+ for (final RowSet rowSet : rowSets)
+ handleRowValueUpdate(rowSet.getRow(),
rowSet.getColumn(), rowSet.getValue(),
+ rowSet.getRawValue());
}
@Override
@@ -827,7 +834,7 @@
}
public void cleanup() {
- tableRowChangeTracker.cleanup();
+ tableRowUpdateService.stopTracking(this, attrs);
}
}
Deleted:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MyTableRowChangeTracker.java
===================================================================
---
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MyTableRowChangeTracker.java
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/MyTableRowChangeTracker.java
2011-01-19 22:19:48 UTC (rev 23514)
@@ -1,35 +0,0 @@
-package org.cytoscape.browser.internal;
-
-
-import java.util.List;
-
-import org.cytoscape.event.CyEventHelper;
-import org.cytoscape.model.CyRow;
-import org.cytoscape.model.CyTable;
-import org.cytoscape.model.CyTableRowChangeTracker;
-import org.cytoscape.model.CyTableRowChangeTracker.RowUpdate;
-import org.cytoscape.service.util.CyServiceRegistrar;
-
-
-class MyTableRowChangeTracker extends CyTableRowChangeTracker {
- private final BrowserTableModel browserTableModel;
-
- MyTableRowChangeTracker(final CyTable table, final CyEventHelper
eventHelper,
- final CyServiceRegistrar serviceRegistrar,
- final BrowserTableModel browserTableModel)
- {
- super(table, eventHelper, serviceRegistrar);
- this.browserTableModel = browserTableModel;
- }
-
- public final void rowCreated(final CyRow newRow) {
- browserTableModel.rowCreated(newRow);
- }
-
- public final void rowsUpdated(final List<RowUpdate> updates) {
- for (final RowUpdate update : updates)
- browserTableModel.handleRowUpdate(update.getRow(),
update.getColumnName(),
- update.getNewValue(),
-
update.getNewRawValue());
- }
-}
\ No newline at end of file
Modified:
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
===================================================================
---
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/table-browser-impl/trunk/src/main/java/org/cytoscape/browser/internal/TableBrowser.java
2011-01-19 22:19:48 UTC (rev 23514)
@@ -19,6 +19,7 @@
import org.cytoscape.event.CyEventHelper;
import org.cytoscape.model.CyTable;
import org.cytoscape.model.CyTableManager;
+import org.cytoscape.model.CyTableRowUpdateService;
import org.cytoscape.model.events.RowCreatedMicroListener;
import org.cytoscape.application.swing.CytoPanelComponent;
import org.cytoscape.application.swing.CytoPanelName;
@@ -37,6 +38,7 @@
private final CyEventHelper eventHelper;
private final EqnCompiler compiler;
private final BrowserTable browserTable;
+ private final CyTableRowUpdateService tableRowUpdateService;
private final AttributeBrowserToolBar attributeBrowserToolBar;
private final TableChooser tableChooser;
private BrowserTableModel browserTableModel;
@@ -44,13 +46,15 @@
TableBrowser(final CyTableManager tableManager, final
CyServiceRegistrar serviceRegistrar,
final CyEventHelper eventHelper, final EqnCompiler
compiler,
- final OpenBrowser openBrowser)
+ final OpenBrowser openBrowser,
+ final CyTableRowUpdateService tableRowUpdateService)
{
this.tableManager = tableManager;
this.serviceRegistrar = serviceRegistrar;
this.eventHelper = eventHelper;
this.compiler = compiler;
this.browserTable = new BrowserTable(openBrowser, compiler);
+ this.tableRowUpdateService = tableRowUpdateService;
this.attributeBrowserToolBar = new
AttributeBrowserToolBar(serviceRegistrar, compiler);
this.setLayout(new BorderLayout());
@@ -99,7 +103,8 @@
currentTable = table;
browserTableModel = new BrowserTableModel(browserTable,
eventHelper, table,
- compiler,
serviceRegistrar);
+ compiler,
serviceRegistrar,
+
tableRowUpdateService);
serviceRegistrar.registerAllServices(browserTableModel,
new Properties());
browserTable.setModel(browserTableModel);
browserTable.setRowSorter(new
TableRowSorter(browserTableModel));
Modified:
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
===================================================================
---
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context-osgi.xml
2011-01-19 22:19:48 UTC (rev 23514)
@@ -11,6 +11,7 @@
<osgi:reference id="cyEventHelperServiceRef"
interface="org.cytoscape.event.CyEventHelper" />
<osgi:reference id="compilerServiceRef"
interface="org.cytoscape.equations.EqnCompiler" />
<osgi:reference id="openBrowserServiceRef"
interface="org.cytoscape.util.swing.OpenBrowser" />
+ <osgi:reference id="cyTableRowUpdateServiceRef"
interface="org.cytoscape.model.CyTableRowUpdateService" />
<!-- listeners -->
<osgi:service id="tableBrowserCytoPanelComponentService"
ref="tableBrowser">
Modified:
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
---
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-01-19 18:50:43 UTC (rev 23513)
+++
core3/table-browser-impl/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2011-01-19 22:19:48 UTC (rev 23514)
@@ -31,5 +31,6 @@
<constructor-arg ref="cyEventHelperServiceRef" />
<constructor-arg ref="compilerServiceRef" />
<constructor-arg ref="openBrowserServiceRef" />
+ <constructor-arg ref="cyTableRowUpdateServiceRef" />
</bean>
</beans>
--
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en.