2
Fork 0

[svn r342] WIP2

This commit is contained in:
willemc 2008-09-13 17:04:49 +02:00
parent a60c7487e9
commit 62f7881380
40 changed files with 1559 additions and 514 deletions

View file

@ -106,16 +106,14 @@ public class SwingVascFrontend implements VascFrontend {
public void initEntry(VascEntry entry) throws Exception {
if (entry.getVascFrontend()==null) {
entry.setVascFrontend(this);
if (entry.getVascFrontendData().getVascFrontend()==null) {
entry.getVascFrontendData().setVascFrontend(this);
} else {
if (entry.getVascFrontend()!=this) {
if (entry.getVascFrontendData().getVascFrontend()!=this) {
throw new IllegalArgumentException("VascEntry has already a differtent VascViewRenderer attected");
}
}
entry.getVascFrontendController().getVascFrontendHelper().finalizeVascEntry(entry);
entry.getVascFrontendController().getVascFrontendHelper().finalizeVascEntryFields(entry);
entry.getVascFrontendController().getVascFrontendHelper().refreshData(entry);
entry.getVascFrontendData().getVascFrontendHelper().refreshData(entry);
/*
entry.putUIComponent(VascTextField.class, SwingTextField.class);
entry.putUIComponent(VascList.class, SwingList.class);
@ -129,7 +127,7 @@ public class SwingVascFrontend implements VascFrontend {
public ImageIcon getImageIcon(String imageResource) {
/// TODO hack beter
String key = entry.getVascEntryResourceResolver().getTextValue(imageResource);
String key = entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(imageResource);
//logger.fine("KEY======================="+key);
if (key.indexOf("META-INF")>0 | key.indexOf("resource")>0) {
@ -149,10 +147,13 @@ public class SwingVascFrontend implements VascFrontend {
rowBean = entry.getVascFrontendController().getVascFrontendHelper().initEditObject(entry, rowBean);
rowBean = entry.getVascFrontendData().getVascFrontendHelper().initEditObject(entry, rowBean);
String beanValue = rowBean.toString();
if (entry.getDisplayNameField()!=null) {
Object vv = entry.getUIIdentifierVascEntryColomn().getVascColumnValue().getValue(entry.getUIIdentifierVascEntryColomn(), rowBean);
if (entry.getDisplayNameFieldId()!=null) {
VascEntryField v = entry.getVascEntryFieldById(entry.getDisplayNameFieldId());
Object vv = v.getVascEntryFieldValue().getValue(v, rowBean);
if (vv==null) {
beanValue="";
} else {
@ -162,27 +163,28 @@ public class SwingVascFrontend implements VascFrontend {
beanValue=beanValue.substring(0, 30);
}
}
SwingEditDialog dialog = new SwingEditDialog(parent,entry,rowBean,entry.getVascEntryResourceResolver().getTextValue("vasc.dialog.edit.title"),entry.getVascTextValue().getTextValue("vasc.dialog.edit.message",beanValue));
SwingEditDialog dialog = new SwingEditDialog(parent,entry,rowBean,entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.edit.title"),entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.edit.message",beanValue));
Object result = dialog.openDialog();
logger.finest("OPEN closed : "+result);
if(result==null) {
return;
}
entry.getVascFrontendController().getVascFrontendHelper().mergeObject(entry, result);
entry.getVascFrontendData().getVascFrontendHelper().mergeObject(entry, result);
}
public void renderDelete(Object rowBean) throws Exception {
String beanValue = rowBean.toString();
if (entry.getUIIdentifierVascEntryColomn()!=null) {
beanValue = ""+entry.getUIIdentifierVascEntryColomn().getVascColumnValue().getValue(entry.getUIIdentifierVascEntryColomn(), rowBean);
if (entry.getDisplayNameFieldId()!=null) {
VascEntryField v = entry.getVascEntryFieldById(entry.getDisplayNameFieldId());
beanValue = ""+v.getVascEntryFieldValue().getValue(v, rowBean);
if (beanValue.length()>30) {
beanValue=beanValue.substring(0, 30);
}
}
int response = JOptionPane.showOptionDialog(
parent // Center in window.
, entry.getVascEntryResourceResolver().getTextValue("vasc.dialog.delete.message",beanValue) // Message
, entry.getVascEntryResourceResolver().getTextValue("vasc.dialog.delete.title") // Title in titlebar
, entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.delete.message",beanValue) // Message
, entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.delete.title") // Title in titlebar
, JOptionPane.YES_NO_OPTION // Option type
, JOptionPane.PLAIN_MESSAGE // messageType
, null // Icon (none)
@ -190,10 +192,10 @@ public class SwingVascFrontend implements VascFrontend {
, null // Default button's label
);
if (response==JOptionPane.YES_OPTION) {
entry.getVascBackend().delete(rowBean);
entry.getEntryDataList().remove(rowBean);
entry.setEntryDataObject(null);
entry.getVascFrontendController().getVascFrontendHelper().fireVascEvent(VascEventListener.VascEventType.DATA_UPDATE, rowBean);
entry.getVascFrontendData().getVascBackend().delete(rowBean);
entry.getVascFrontendData().getEntryDataList().remove(rowBean);
entry.getVascFrontendData().setEntryDataObject(null);
//entry.getVascFrontendController().getVascFrontendHelper().fireVascEvent(VascEventListener.VascEventType.DATA_UPDATE, rowBean);
}
}
@ -210,7 +212,7 @@ public class SwingVascFrontend implements VascFrontend {
this.headerText = headerText;
this.bean = bean;
setTitle(entry.getVascEntryResourceResolver().getTextValue(title));
setTitle(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(title));
setModal(true);
JPanel pane = new JPanel();
@ -250,7 +252,7 @@ public class SwingVascFrontend implements VascFrontend {
public void createHeader(JPanel header) {
JLabel l = new JLabel();
l.setText(entry.getVascEntryResourceResolver().getTextValue(headerText));
l.setText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(headerText));
l.setFont(new Font(null,Font.BOLD, 14));
//l.setToolTipText(entry.getVascTextValue().getTextValue(headerText));
header.add(l);
@ -260,7 +262,7 @@ public class SwingVascFrontend implements VascFrontend {
body.setLayout(new SpringLayout());
int column = 0;
for(VascEntryField c:entry.getVascEntryFields()) {
entry.getVascFrontendController().getVascFrontendHelper().initEditObjectColumn(c, bean);
entry.getVascFrontendData().getVascFrontendHelper().initEditObjectColumn(c, bean);
if (c.isEdit()==false) {
continue;
}
@ -269,16 +271,16 @@ public class SwingVascFrontend implements VascFrontend {
JLabel l = new JLabel();
l.setHorizontalAlignment(JLabel.TRAILING);
l.setText(entry.getVascEntryResourceResolver().getTextValue(c.getName()));
l.setText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(c.getName()));
if(c.getDescription()!=null) {
l.setToolTipText(entry.getVascEntryResourceResolver().getTextValue(c.getDescription()));
l.setToolTipText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(c.getDescription()));
}
body.add(l);
if (c.isEditReadOnly()==true) {
JLabel valueLabel = new JLabel();
valueLabel.setText(""+c.getVascEntryFieldValue().getValue(c, bean));
c.setColumnEditor(valueLabel);
//c.setColumnEditor(valueLabel);
body.add(valueLabel);
continue;
}
@ -286,7 +288,7 @@ public class SwingVascFrontend implements VascFrontend {
if(c.getVascEntryFieldType().getVascUIComponent()==null) {
JLabel valueLabel = new JLabel();
valueLabel.setText(""+c.getVascEntryFieldValue().getValue(c, bean));
c.setColumnEditor(valueLabel);
//c.setColumnEditor(valueLabel);
body.add(valueLabel);
} else {
VascUIComponent comp = c.getVascEntryFieldType().getVascUIComponent();
@ -294,7 +296,7 @@ public class SwingVascFrontend implements VascFrontend {
model.setValue(c.getVascEntryFieldValue().getValue(c, bean));
model.addListener(new VascColumnValueModelListener(c,bean));
comp.createComponent(entry, model, body);
c.setColumnEditor(comp);
//c.setColumnEditor(comp);
}
}
//JComponent, rows, cols, initX, initY ,xPad, yPad
@ -305,11 +307,11 @@ public class SwingVascFrontend implements VascFrontend {
JButton saveButton = new JButton();
saveButton.setIcon(getImageIcon("vasc.dialog.save.image"));
saveButton.setText(entry.getVascEntryResourceResolver().getTextValue("vasc.dialog.save.name"));
saveButton.setToolTipText(entry.getVascEntryResourceResolver().getTextValue("vasc.dialog.save.tooltip"));
saveButton.setText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.save.name"));
saveButton.setToolTipText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.save.tooltip"));
saveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if(entry.getVascFrontendController().getVascFrontendHelper().setUIComponentsBeanErrors(entry, bean)) {
if(entry.getVascFrontendData().getVascFrontendHelper().setUIComponentsBeanErrors(entry, bean)) {
return;
}
result = bean;
@ -320,8 +322,8 @@ public class SwingVascFrontend implements VascFrontend {
JButton cancelButton = new JButton();
cancelButton.setIcon(getImageIcon("vasc.dialog.cancel.image"));
cancelButton.setText(entry.getVascEntryResourceResolver().getTextValue("vasc.dialog.cancel.name"));
cancelButton.setToolTipText(entry.getVascEntryResourceResolver().getTextValue("vasc.dialog.cancel.tooltip"));
cancelButton.setText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.cancel.name"));
cancelButton.setToolTipText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue("vasc.dialog.cancel.tooltip"));
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
result = null;
@ -361,7 +363,7 @@ public class SwingVascFrontend implements VascFrontend {
try {
exporter.doExport(out, entry);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(e, entry);
entry.getVascFrontendData().getVascFrontendHelper().handleException(e, entry);
} finally {
if (out!=null) {
out.close();
@ -410,17 +412,17 @@ public class SwingVascFrontend implements VascFrontend {
// TODO: hack images working
l.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().createImage(getClass().getResource(entry.getHeaderImage())).getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
if (entry.getHeaderDescription()!=null) {
l.setToolTipText(entry.getVascEntryResourceResolver().getTextValue(entry.getHeaderDescription()));
l.setToolTipText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(entry.getHeaderDescription()));
}
header.add(l,BorderLayout.WEST);
}
if(entry.getHeaderName()!=null) {
JLabel l = new JLabel(entry.getVascEntryResourceResolver().getTextValue(entry.getHeaderName()));
JLabel l = new JLabel(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(entry.getHeaderName()));
l.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
l.setFont(new Font(null,Font.BOLD, 18));
if (entry.getHeaderDescription()!=null) {
l.setToolTipText(entry.getVascEntryResourceResolver().getTextValue(entry.getHeaderDescription()));
l.setToolTipText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(entry.getHeaderDescription()));
}
header.add(l,BorderLayout.CENTER);
}
@ -429,8 +431,8 @@ public class SwingVascFrontend implements VascFrontend {
//top.setBackground(Color.BLUE);
for (GlobalVascAction action:entry.getGlobalActions()) {
JButton but = new JButton();
but.setText(entry.getVascEntryResourceResolver().getTextValue(action.getName()));
but.setToolTipText(entry.getVascEntryResourceResolver().getTextValue(action.getToolTip()));
but.setText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(action.getName()));
but.setToolTipText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(action.getToolTip()));
but.addActionListener(new GlobalActionListener(action));
but.setIcon(getImageIcon(action.getImage()));
top.add(but);
@ -481,7 +483,11 @@ public class SwingVascFrontend implements VascFrontend {
continue;
}
TableColumn t = new TableColumn();
t.setPreferredWidth(c.getSizeList());
if (c.getSizeList()!=null) {
t.setPreferredWidth(c.getSizeList());
} else {
t.setPreferredWidth(200);
}
t.setHeaderValue(c);
t.setHeaderRenderer(renderer);
t.setModelIndex(counter);
@ -493,15 +499,15 @@ public class SwingVascFrontend implements VascFrontend {
table.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent e) {
if (e.getClickCount() == 2) {
Object o = entry.getEntryDataObject();
Object o = entry.getVascFrontendData().getEntryDataObject();
if (o==null) {
return;
}
try {
// TODO: fix this
entry.getVascFrontend().renderEdit(o);
entry.getVascFrontendData().getVascFrontend().renderEdit(o);
} catch (Exception ee) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(ee, entry);
entry.getVascFrontendData().getVascFrontendHelper().handleException(ee, entry);
}
}
}
@ -524,10 +530,10 @@ public class SwingVascFrontend implements VascFrontend {
if (rowIndex!=-1) {
// temp; gets index by sorter
rowIndex = tableSorter.modelIndex(rowIndex);
Object data = entry.getEntryDataList().get(rowIndex);
entry.setEntryDataObject(data);
Object data = entry.getVascFrontendData().getEntryDataList().get(rowIndex);
entry.getVascFrontendData().setEntryDataObject(data);
} else {
entry.setEntryDataObject(null);
entry.getVascFrontendData().setEntryDataObject(null);
}
}
}
@ -535,8 +541,8 @@ public class SwingVascFrontend implements VascFrontend {
private static final long serialVersionUID = 10L;
public Component getentryCellRendererComponent(JTable table, Object value, boolean isSelected,boolean hasFocus, int row, int column) {
VascEntryField c = (VascEntryField)value;
setText(c.getVascEntry().getVascEntryResourceResolver().getTextValue(c.getName()));
setToolTipText(c.getVascEntry().getVascEntryResourceResolver().getTextValue(c.getDescription()));
setText(c.getVascEntry().getVascFrontendData().getVascEntryResourceResolver().getTextValue(c.getName()));
setToolTipText(c.getVascEntry().getVascFrontendData().getVascEntryResourceResolver().getTextValue(c.getDescription()));
if(c.getImage()!=null) {
setIcon(getImageIcon(c.getImage()));
@ -563,8 +569,8 @@ public class SwingVascFrontend implements VascFrontend {
JPanel panel = new JPanel();
for(RowVascAction action:entry.getRowActions()) {
JButton but = new JButton();
but.setText(entry.getVascEntryResourceResolver().getTextValue(action.getName()));
but.setToolTipText(entry.getVascEntryResourceResolver().getTextValue(action.getToolTip()));
but.setText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(action.getName()));
but.setToolTipText(entry.getVascFrontendData().getVascEntryResourceResolver().getTextValue(action.getToolTip()));
but.setIcon(getImageIcon(action.getImage()));
but.addActionListener(new RowActionListener(action));
panel.add(but);
@ -585,9 +591,9 @@ public class SwingVascFrontend implements VascFrontend {
public void actionPerformed(ActionEvent event) {
logger.fine("Row Action");
try {
action.doRowAction(entry, entry.getEntryDataObject());
action.doRowAction(entry, entry.getVascFrontendData().getEntryDataObject());
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(e, entry);
entry.getVascFrontendData().getVascFrontendHelper().handleException(e, entry);
}
}
}
@ -605,12 +611,12 @@ public class SwingVascFrontend implements VascFrontend {
try {
action.doGlobalAction(entry);
} catch (Exception e) {
entry.getVascFrontendController().getVascFrontendHelper().handleException(e, entry);
entry.getVascFrontendData().getVascFrontendHelper().handleException(e, entry);
}
}
}
class VascColumnModel extends AbstractTableModel implements VascEventListener {
class VascColumnModel extends AbstractTableModel { //implements VascEventListener {
private static final long serialVersionUID = 10L;
public void vascEvent(VascEventType e,Object o) {
@ -637,17 +643,17 @@ public class SwingVascFrontend implements VascFrontend {
* @see javax.swing.entry.entryModel#getRowCount()
*/
public int getRowCount() {
if (entry.getEntryDataList()==null) {
if (entry.getVascFrontendData().getEntryDataList()==null) {
return 0;
}
return entry.getEntryDataList().size();
return entry.getVascFrontendData().getEntryDataList().size();
}
/**
* @see javax.swing.entry.entryModel#getValueAt(int, int)
*/
public Object getValueAt(int rowIndex, int columnIndex) {
Object bean = entry.getEntryDataList().get(rowIndex);
Object bean = entry.getVascFrontendData().getEntryDataList().get(rowIndex);
logger.finer("Rending column; "+columnIndex+" bean: "+bean);
// TODO: this is slowing....

View file

@ -65,6 +65,7 @@ import org.eclipse.swt.widgets.ToolItem;
import com.idcanet.fff.SwingImageHelper;
import com.idcanet.vasc.core.VascEntry;
import com.idcanet.vasc.core.VascFrontend;
import com.idcanet.vasc.core.actions.GlobalVascAction;
import com.idcanet.vasc.core.actions.RowVascAction;