Author: rozagh
Date: 2012-08-06 18:15:22 -0700 (Mon, 06 Aug 2012)
New Revision: 30108
Modified:
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/FormulaBuilderDialog.java
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
Log:
Fixes for equation bugs and cell selection.
Modified:
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
===================================================================
---
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
2012-08-06 23:46:07 UTC (rev 30107)
+++
core3/impl/trunk/model-impl/impl/src/main/java/org/cytoscape/model/internal/CyTableImpl.java
2012-08-07 01:15:22 UTC (rev 30108)
@@ -808,8 +808,10 @@
lastInternalError = errorMsg.toString();
if ( type == null )
return value;
- else
+ else if(value != null)
return
EqnSupport.convertEqnResultToColumnType(type, value);
+ else
+ return null;
} else
return vl;
}
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
2012-08-06 23:46:07 UTC (rev 30107)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/AttributeBrowserToolBar.java
2012-08-07 01:15:22 UTC (rev 30108)
@@ -632,7 +632,8 @@
}
private String getAttribName(final int cellRow, final int cellColumn) {
- return browserTableModel.getColumnName(cellColumn);
+ int colIndexModel =
browserTableModel.getTable().convertColumnIndexToModel(cellColumn);
+ return browserTableModel.getColumnName( colIndexModel);
}
private JButton getDeleteButton() {
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2012-08-06 23:46:07 UTC (rev 30107)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/BrowserTableModel.java
2012-08-07 01:15:22 UTC (rev 30108)
@@ -178,10 +178,10 @@
}
@Override
- public Object getValueAt(final int rowIndex, final int columnIndex) {
+ public Object getValueAt(final int rowIndex, final int columnIndex) {
final String columnName = getColumnName(columnIndex);
final CyRow row = mapRowIndexToRow(rowIndex);
-
+
return getValidatedObjectAndEditString(row, columnName);
}
@@ -230,15 +230,13 @@
return null;
// Optimisation hack:
+
+
Object cooked;
- if (!(raw instanceof String))
+ if (!(raw instanceof Equation))
cooked = raw;
else {
- final String rawString = (String)raw;
- if (!rawString.startsWith("="))
- cooked = rawString;
- else
- cooked = getColumnValue(row, columnName);
+ cooked = getColumnValue(row, columnName);
}
if (cooked != null)
@@ -253,8 +251,9 @@
if (column.getType() == List.class) {
final Class<?> listElementType =
column.getListElementType();
return row.getList(columnName, listElementType);
- } else
+ } else{
return row.get(columnName, column.getType());
+ }
}
@SuppressWarnings("unchecked")
@@ -448,8 +447,10 @@
if(pk != null) {
if (suidMapSelected.keySet().contains(pk)){
table.addRowSelectionInterval(i, i);
+ /*
if (table.getColumnCount() > 0)
table.addColumnSelectionInterval(0, table.getColumnCount() - 1);
+ */
}else if
(suidMapUnselected.keySet().contains(pk)){
table.removeRowSelectionInterval(i, i);
}
@@ -544,12 +545,14 @@
final Map<String, Class<?>> variableNameToTypeMap = new
HashMap<String, Class<?>>();
initVariableNameToTypeMap(variableNameToTypeMap);
if (compiler.compile(text, variableNameToTypeMap)) {
+
final Equation eqn = compiler.getEquation();
final Class<?> eqnType = eqn.getType();
// Is the equation type compatible with the
column type?
- if (eqnTypeIsCompatible(columnType, eqnType))
+ if (eqnTypeIsCompatible(columnType, eqnType)){
row.set(columnName, eqn);
+ }
else { // The equation type is incompatible w/
the column type!
final Class<?> expectedType =
columnType == Integer.class ? Long.class : columnType;
final String errorMsg = "Equation
result type is "
@@ -578,6 +581,7 @@
final TableModelEvent event = new TableModelEvent(this,
rowIndex, rowIndex, columnIndex);
fireTableChanged(event);
+ fireTableDataChanged();
}
// Pop-up window for error message
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/FormulaBuilderDialog.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/FormulaBuilderDialog.java
2012-08-06 23:46:07 UTC (rev 30107)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/FormulaBuilderDialog.java
2012-08-07 01:15:22 UTC (rev 30108)
@@ -207,6 +207,11 @@
|| returnType == String.class || returnType ==
Object.class))
return true;
+ if (requiredType == Integer.class
+ && (returnType == Double.class || returnType ==
Boolean.class
+ || returnType == String.class || returnType ==
Object.class))
+ return true;
+
if (requiredType == Long.class
&& (returnType == Double.class || returnType ==
Boolean.class
|| returnType == String.class || returnType ==
Object.class))
@@ -480,7 +485,8 @@
formula = formula + ")";
final JTable table = tableModel.getTable();
- final int cellColum = table.getSelectedColumn();
+ final int cellColum = table.convertColumnIndexToModel(
table.getSelectedColumn());
+
final String attribName = tableModel.getColumnName(cellColum);
final CyTable attribs = tableModel.getAttributes();
@@ -490,7 +496,7 @@
switch (applicationDomain) {
case CURRENT_CELL:
- final int cellRow = table.getSelectedRow();
+ final int cellRow = table.convertRowIndexToModel(
table.getSelectedRow());
tableModel.setValueAt(formula, cellRow, cellColum);
break;
case CURRENT_SELECTION:
Modified:
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
===================================================================
---
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
2012-08-06 23:46:07 UTC (rev 30107)
+++
core3/impl/trunk/table-browser-impl/src/main/java/org/cytoscape/browser/internal/PopupMenuHelper.java
2012-08-07 01:15:22 UTC (rev 30108)
@@ -94,7 +94,8 @@
// Add preset menue items
final Object value =
column.getTable().getRow(primaryKeyValue).get(column.getName(),
column.getType());
- menu.add(getOpenLinkMenu(value.toString()));
+ if (value != null)
+ menu.add(getOpenLinkMenu(value.toString()));
final PopupMenuGravityTracker tracker = new
PopupMenuGravityTracker(menu);
--
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.