2
Fork 0

[svn r270] added extra ui layer

This commit is contained in:
willemc 2007-08-11 03:26:58 +02:00
parent b1f6e870a3
commit 56c4fad429
23 changed files with 825 additions and 105 deletions

View file

@ -75,6 +75,13 @@ import com.idcanet.vasc.core.VascViewRenderer;
import com.idcanet.vasc.core.actions.GlobalVascAction;
import com.idcanet.vasc.core.actions.RowVascAction;
import com.idcanet.vasc.core.column.VascTableColumn;
import com.idcanet.vasc.core.ui.VascColumnValueModelListener;
import com.idcanet.vasc.core.ui.VascList;
import com.idcanet.vasc.core.ui.VascTextField;
import com.idcanet.vasc.core.ui.VascUIComponent;
import com.idcanet.vasc.core.ui.VascValueModel;
import com.idcanet.vasc.impl.swing.ui.SwingList;
import com.idcanet.vasc.impl.swing.ui.SwingTextField;
/**
*
@ -104,19 +111,12 @@ public class SwingVascViewRenderer implements VascViewRenderer {
table.getVascTableController().finalizeVascColumns(table);
table.getVascTableController().finalizeVascTable(table);
table.getVascTableController().refreshData(table);
table.putUIComponent(VascTextField.class, SwingTextField.class);
table.putUIComponent(VascList.class, SwingList.class);
this.table=table;
}
/**
* @see com.idcanet.vasc.core.VascViewRenderer#defaultColumnEditor(com.idcanet.vasc.core.column.VascTableColumn, java.lang.Object, java.lang.Object)
*/
public Object defaultColumnEditor(VascTableColumn column, Object bean, Object gui) throws Exception {
JTextField def = new JTextField();
def.setText(""+column.getVascColumnValue().getValue(column, bean));
((JComponent)gui).add(def);
def.getDocument().addDocumentListener(new TextListener(column,bean) );
return def;
}
public ImageIcon getImageIcon(String imageResource) {
/// TODO hack beter
@ -130,59 +130,7 @@ public class SwingVascViewRenderer implements VascViewRenderer {
}
}
class TextListener implements DocumentListener {
private VascTableColumn column = null;
private Object bean = null;
public TextListener(VascTableColumn column,Object bean) {
this.column=column;
this.bean=bean;
}
/**
* @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent)
*/
public void changedUpdate(DocumentEvent e) {
update(e);
}
/**
* @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent)
*/
public void insertUpdate(DocumentEvent e) {
update(e);
}
/**
* @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent)
*/
public void removeUpdate(DocumentEvent e) {
update(e);
}
public void update(DocumentEvent event) {
try {
String value = event.getDocument().getText(0, event.getDocument().getLength());
logger.finer("Setting value: "+value);
column.getVascColumnValue().setValue(column, bean, value);
} catch (Exception ee) {
ee.printStackTrace();
}
}
}
/**
* @see com.idcanet.vasc.core.VascViewRenderer#defaultColumnRenderer(com.idcanet.vasc.core.column.VascTableColumn, java.lang.Object)
*/
public Object defaultColumnRenderer(VascTableColumn column, Object gui) throws Exception {
return null;
}
/**
* @see com.idcanet.vasc.core.VascViewRenderer#renderEdit(com.idcanet.vasc.core.VascTable, java.lang.Object)
@ -297,13 +245,19 @@ public class SwingVascViewRenderer implements VascViewRenderer {
try {
table.getVascTableController().initEditObjectColumn(c, bean);
if(c.getVascColumnEditor()==null) {
if(c.getVascUIComponent()==null) {
JLabel valueLabel = new JLabel();
valueLabel.setText(""+c.getVascColumnValue().getValue(c, bean));
c.setColumnEditor(valueLabel);
body.add(valueLabel);
} else {
c.setColumnEditor(c.getVascColumnEditor().createColumnEditor(c,bean,body));
//c.setColumnEditor(c.getVascColumnEditor().createColumnEditor(c,bean,body));
VascUIComponent comp = c.getVascUIComponent();
VascValueModel model = new VascValueModel();
model.setValue(c.getVascColumnValue().getValue(c, bean));
model.addListener(new VascColumnValueModelListener(c,bean));
comp.createComponent(table, model, body);
c.setColumnEditor(comp);
}
} catch (Exception e) {
logger.log(Level.WARNING,"Error making column editor: '"+c.getVascColumnValue()+"' error: "+e.getMessage(),e);