2
Fork 0

[svn r262] made i18n work, added some images, made preperments for the user options

This commit is contained in:
willemc 2007-08-03 04:09:01 +02:00
parent cb8d6bc334
commit 0d5312462c
27 changed files with 468 additions and 163 deletions

View file

@ -31,6 +31,8 @@ import java.awt.Color;
import java.awt.Component;
import java.awt.Container;
import java.awt.Font;
import java.awt.Image;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.FileOutputStream;
@ -38,6 +40,7 @@ import java.io.OutputStream;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
@ -89,6 +92,21 @@ public class SwingVascViewRenderer implements VascViewRenderer {
this.parent=parent;
}
public void initTable(VascTable table) throws Exception {
if (table.getVascViewRenderer()==null) {
table.setVascViewRenderer(this);
} else {
if (table.getVascViewRenderer()!=this) {
throw new IllegalArgumentException("VascTable has already a differtent VascViewRenderer attected");
}
}
table.getVascTableController().finalizeVascColumns(table);
table.getVascTableController().finalizeVascTable(table);
table.getVascTableController().refreshData(table);
this.table=table;
}
/**
* @see com.idcanet.vasc.core.VascViewRenderer#defaultColumnEditor(com.idcanet.vasc.core.column.VascTableColumn, java.lang.Object, java.lang.Object)
*/
@ -101,7 +119,10 @@ public class SwingVascViewRenderer implements VascViewRenderer {
}
public ImageIcon getImageIcon(String imageResource) {
return SwingImageHelper.getImageIcon(imageResource);
/// TODO hack beter
String key = table.getVascTextValue().getTextValue(imageResource);
return SwingImageHelper.getImageIcon(key);
}
class TextListener implements DocumentListener {
@ -114,21 +135,21 @@ public class SwingVascViewRenderer implements VascViewRenderer {
this.bean=bean;
}
/* (non-Javadoc)
/**
* @see javax.swing.event.DocumentListener#changedUpdate(javax.swing.event.DocumentEvent)
*/
public void changedUpdate(DocumentEvent e) {
update(e);
}
/* (non-Javadoc)
/**
* @see javax.swing.event.DocumentListener#insertUpdate(javax.swing.event.DocumentEvent)
*/
public void insertUpdate(DocumentEvent e) {
update(e);
}
/* (non-Javadoc)
/**
* @see javax.swing.event.DocumentListener#removeUpdate(javax.swing.event.DocumentEvent)
*/
public void removeUpdate(DocumentEvent e) {
@ -161,26 +182,24 @@ public class SwingVascViewRenderer implements VascViewRenderer {
/**
* @see com.idcanet.vasc.core.VascViewRenderer#renderEdit(com.idcanet.vasc.core.VascTable, java.lang.Object)
*/
public void renderEdit(VascTable table, Object rowBean) throws Exception {
public void renderEdit(Object rowBean) throws Exception {
logger.info("Rending Edit View");
table.getVascTableController().initEditObject(table, rowBean);
SwingEditDialog dialog = new SwingEditDialog(parent,table,rowBean,"Vasc Edit","Edit");
Object result = dialog.openDialog();
System.out.println("---------------- OPEN closed : "+result);
logger.finest("OPEN closed : "+result);
if(result==null) {
return;
}
try {
result = table.getVascDataSource().merge(rowBean);
table.getVascTableController().fireVascEvent(VascEventListener.VascEventType.DATA_UPDATE, result);
} finally {
//TODO: or merge into table == faster
table.getVascTableController().refreshData(table);
}
}
public void renderDelete(VascTable table,Object rowBean) throws Exception {
public void renderDelete(Object rowBean) throws Exception {
int response = JOptionPane.showOptionDialog(
parent // Center in window.
, "Delete "+rowBean // Message
@ -212,7 +231,7 @@ public class SwingVascViewRenderer implements VascViewRenderer {
this.bean = bean;
setTitle(title);
setTitle(table.getVascTextValue().getTextValue(title));
setModal(true);
JPanel pane = new JPanel();
@ -252,8 +271,9 @@ public class SwingVascViewRenderer implements VascViewRenderer {
public void createHeader(JPanel header) {
JLabel l = new JLabel();
l.setText(headerText);
l.setText(table.getVascTextValue().getTextValue(headerText));
l.setFont(new Font(null,Font.BOLD, 14));
//l.setToolTipText(table.getVascTextValue().getTextValue(headerText));
header.add(l);
}
@ -291,8 +311,9 @@ public class SwingVascViewRenderer implements VascViewRenderer {
public void createFooter(JPanel footer) {
JButton saveButton = new JButton();
saveButton.setIcon(getImageIcon("/META-INF/images/silk/png/tick.png"));
saveButton.setText("generic.save");
saveButton.setIcon(getImageIcon("vasc.dialog.save.image"));
saveButton.setText(table.getVascTextValue().getTextValue("vasc.dialog.save.name"));
saveButton.setToolTipText(table.getVascTextValue().getTextValue("vasc.dialog.save.tooltip"));
saveButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
//if(hasRecordError()) {
@ -305,8 +326,9 @@ public class SwingVascViewRenderer implements VascViewRenderer {
footer.add(saveButton);
JButton cancelButton = new JButton();
cancelButton.setIcon(getImageIcon("/META-INF/images/silk/png/cancel.png"));
cancelButton.setText("generic.cancel");
cancelButton.setIcon(getImageIcon("vasc.dialog.cancel.image"));
cancelButton.setText(table.getVascTextValue().getTextValue("vasc.dialog.cancel.name"));
cancelButton.setToolTipText(table.getVascTextValue().getTextValue("vasc.dialog.cancel.tooltip"));
cancelButton.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
result = null;
@ -323,7 +345,7 @@ public class SwingVascViewRenderer implements VascViewRenderer {
/**
* @see com.idcanet.vasc.core.VascViewRenderer#renderExport(com.idcanet.vasc.core.VascTable, com.idcanet.vasc.core.VascDataExporter)
*/
public void renderExport(VascTable table, VascDataExporter exporter) throws Exception {
public void renderExport(VascDataExporter exporter) throws Exception {
String fileName = null;
JFileChooser c = new JFileChooser();
@ -359,20 +381,8 @@ public class SwingVascViewRenderer implements VascViewRenderer {
/**
* @see com.idcanet.vasc.core.VascViewRenderer#renderView(com.idcanet.vasc.core.VascTable)
*/
public void renderView(VascTable table) throws Exception {
if (table.getVascViewRenderer()==null) {
table.setVascViewRenderer(this);
} else {
if (table.getVascViewRenderer()!=this) {
throw new IllegalArgumentException("VascTable has already a differtent VascViewRenderer attected");
}
}
table.getVascTableController().finalizeVascColumns(table);
table.getVascTableController().finalizeVascTable(table);
table.getVascTableController().refreshData(table);
this.table=table;
public void renderView() throws Exception {
JPanel topPanel = new JPanel();
topPanel.setLayout(new BorderLayout());
//topPanel.setBackground(Color.PINK);
@ -397,27 +407,52 @@ public class SwingVascViewRenderer implements VascViewRenderer {
}
private void renderHeader(JComponent parent2) {
JPanel header = new JPanel();
header.setLayout(new BorderLayout());
header.setBackground(Color.WHITE);
header.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
if(table.getHeaderImage()!=null) {
JLabel l = new JLabel();
// TODO: hack images working
l.setIcon(new ImageIcon(Toolkit.getDefaultToolkit().createImage(getClass().getResource(table.getHeaderImage())).getScaledInstance(32, 32, Image.SCALE_SMOOTH)));
l.setToolTipText(table.getVascTextValue().getTextValue(table.getHeaderToolTip()));
header.add(l,BorderLayout.WEST);
}
if(table.getHeaderName()!=null) {
JLabel l = new JLabel(table.getVascTextValue().getTextValue(table.getHeaderName()));
l.setFont(new Font(null,Font.BOLD, 14));
parent2.add(l);
l.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10));
l.setFont(new Font(null,Font.BOLD, 18));
l.setToolTipText(table.getVascTextValue().getTextValue(table.getHeaderToolTip()));
header.add(l,BorderLayout.CENTER);
}
JPanel top = new JPanel();
//top.setBackground(Color.BLUE);
for (GlobalVascAction action:table.getGlobalActions()) {
JButton but = new JButton();
but.setText(table.getVascTextValue().getTextValue(action.getName()));
but.setToolTipText(table.getVascTextValue().getTextValue(action.getToolTip()));
but.addActionListener(new GlobalActionListener(action));
but.setIcon(getImageIcon(action.getImage()));
parent2.add(but);
top.add(but);
}
// create options
JPanel optionPanel = new JPanel();
//top.setBackground(Color.GREEN);
for(VascUserOption option:table.getUserOptions()) {
Object obj = option.createUserOptionRenderer(table);
}
//top.add(header,BorderLayout.NORTH);
parent2.setLayout(new BorderLayout());
parent2.add(header,BorderLayout.NORTH);
parent2.add(optionPanel,BorderLayout.CENTER);
parent2.add(top,BorderLayout.EAST);
}
private void renderBody(JComponent parent2) {
@ -487,6 +522,7 @@ public class SwingVascViewRenderer implements VascViewRenderer {
setFont(header.getFont());
}
}
//setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
setBorder(UIManager.getBorder("TableHeader.cellBorder"));
return this;
}
@ -495,14 +531,17 @@ public class SwingVascViewRenderer implements VascViewRenderer {
private void renderFooter(JComponent parent2) {
logger.finest("Creating footer");
JPanel panel = new JPanel();
for(RowVascAction action:table.getRowActions()) {
JButton but = new JButton();
but.setText(table.getVascTextValue().getTextValue(action.getName()));
but.setToolTipText(table.getVascTextValue().getTextValue(action.getToolTip()));
but.setIcon(getImageIcon(action.getImage()));
but.addActionListener(new RowActionListener(action));
parent2.add(but);
panel.add(but);
}
parent2.setLayout(new BorderLayout());
parent2.add(panel,BorderLayout.WEST);
}
@ -572,7 +611,7 @@ public class SwingVascViewRenderer implements VascViewRenderer {
*/
public Object getValueAt(int rowIndex, int columnIndex) {
Object bean = table.getTableData().get(rowIndex);
System.out.println("Rending column; "+columnIndex+" bean: "+bean);
logger.finer("Rending column; "+columnIndex+" bean: "+bean);
VascTableColumn vtc = table.getTableColumns().get(columnIndex);
if (vtc.getColumnRenderer()!=null) {
//do iets