[svn r270] added extra ui layer
This commit is contained in:
parent
b1f6e870a3
commit
56c4fad429
23 changed files with 825 additions and 105 deletions
|
|
@ -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);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue