diff options
Diffstat (limited to 'src/main/java/com/c2kernel/gui/graph/view/PropertyTableModel.java')
| -rw-r--r-- | src/main/java/com/c2kernel/gui/graph/view/PropertyTableModel.java | 66 |
1 files changed, 45 insertions, 21 deletions
diff --git a/src/main/java/com/c2kernel/gui/graph/view/PropertyTableModel.java b/src/main/java/com/c2kernel/gui/graph/view/PropertyTableModel.java index a339f8d..616c302 100644 --- a/src/main/java/com/c2kernel/gui/graph/view/PropertyTableModel.java +++ b/src/main/java/com/c2kernel/gui/graph/view/PropertyTableModel.java @@ -3,12 +3,12 @@ package com.c2kernel.gui.graph.view; import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
-import java.util.HashMap;
import javax.swing.JOptionPane;
import javax.swing.event.TableModelEvent;
import javax.swing.table.AbstractTableModel;
+import com.c2kernel.utils.CastorHashMap;
import com.c2kernel.utils.Language;
/**************************************************************************
@@ -22,8 +22,8 @@ import com.c2kernel.utils.Language; public class PropertyTableModel extends AbstractTableModel {
- private final String[] mColumnNames = { Language.translate("Name"), Language.translate("Value") };
- public HashMap<String, Object> sourceMap = new HashMap<String, Object>();
+ private final String[] mColumnNames = { Language.translate("Name"), Language.translate("Value"), Language.translate("Abstract") };
+ public CastorHashMap sourceMap = new CastorHashMap();
public ArrayList<String> sortedNameList = new ArrayList<String>();
boolean isEditable = false;
@@ -53,10 +53,16 @@ public class PropertyTableModel extends AbstractTableModel { {
synchronized (sourceMap) {
String rowName = sortedNameList.get(rowIndex);
- if (colIndex == 0)
- return rowName;
- else
- return sourceMap.get(rowName);
+ switch (colIndex) {
+ case 0:
+ return rowName;
+ case 1:
+ return sourceMap.get(rowName);
+ case 2:
+ return sourceMap.getAbstract().contains(rowName);
+ default:
+ return "";
+ }
}
}
@@ -66,21 +72,39 @@ public class PropertyTableModel extends AbstractTableModel { synchronized (sourceMap) {
if (colIndex == 0) return;
String rowName = sortedNameList.get(rowIndex);
- Class<? extends Object> oldElement = sourceMap.get(rowName).getClass();
- if (oldElement == Double.class && value.getClass() == String.class)
- try {
- value = Double.valueOf((String)value);
- } catch (Exception ex) { }
- if (value.getClass() != oldElement)
- JOptionPane.showMessageDialog(null, "This property should contain a "+oldElement.getName()+" not a "+value.getClass().getName(), "Incorrect datatype", JOptionPane.ERROR_MESSAGE);
- else {
- sourceMap.put(rowName, value);
- fireTableCellUpdated(rowIndex, colIndex);
+ if (colIndex == 1) {
+ Class<? extends Object> oldElement = sourceMap.get(rowName).getClass();
+ if (oldElement == Double.class && value.getClass() == String.class)
+ try {
+ value = Double.valueOf((String)value);
+ } catch (Exception ex) { }
+ if (value.getClass() != oldElement)
+ JOptionPane.showMessageDialog(null, "This property should contain a "+oldElement.getName()+" not a "+value.getClass().getName(), "Incorrect datatype", JOptionPane.ERROR_MESSAGE);
+ else
+ sourceMap.put(rowName, value);
+ }
+ else if (colIndex == 2) {
+ Boolean boolVal = (Boolean)value;
+ if (boolVal)
+ sourceMap.getAbstract().add(rowName);
+ else
+ sourceMap.getAbstract().remove(rowName);
}
}
+ fireTableCellUpdated(rowIndex, colIndex);
}
- public void setMap(HashMap<String, Object> props) {
+ @Override
+ public Class<?> getColumnClass(int columnIndex) {
+ switch (columnIndex) {
+ case 2:
+ return Boolean.class;
+ default:
+ return String.class;
+ }
+ }
+
+ public void setMap(CastorHashMap props) {
synchronized (sourceMap) {
sourceMap = props;
sortedNameList = new ArrayList<String>(props.size());
@@ -100,7 +124,7 @@ public class PropertyTableModel extends AbstractTableModel { @Override
public boolean isCellEditable(int row, int col)
{
- return col==1 && isEditable;
+ return col>0 && isEditable;
}
/**
@@ -120,8 +144,8 @@ public class PropertyTableModel extends AbstractTableModel { * @param text
* @param object
*/
- public void addProperty(String text, Object object) {
- sourceMap.put(text,object);
+ public void addProperty(String text, Object object, boolean isAbstract) {
+ sourceMap.put(text, object, isAbstract);
setMap(sourceMap);
}
|
