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.

Reply via email to