[svn r283] added date and boolean editors to swing
This commit is contained in:
parent
9218ea6c8e
commit
78a5744a2a
|
@ -15,5 +15,6 @@
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
|
||||||
<classpathentry kind="lib" path="lib/idcanet-fff-bin.jar"/>
|
<classpathentry kind="lib" path="lib/idcanet-fff-bin.jar"/>
|
||||||
<classpathentry kind="lib" path="lib/hibernate-annotations.jar"/>
|
<classpathentry kind="lib" path="lib/hibernate-annotations.jar"/>
|
||||||
|
<classpathentry kind="lib" path="lib/microba-0.4.2-bin.jar"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
BIN
lib/microba-0.4.2-bin.jar
Normal file
BIN
lib/microba-0.4.2-bin.jar
Normal file
Binary file not shown.
|
@ -34,7 +34,7 @@ package com.idcanet.vasc.core;
|
||||||
*/
|
*/
|
||||||
public interface VascEventListener {
|
public interface VascEventListener {
|
||||||
|
|
||||||
public enum VascEventType { DATA_UPDATE,OPTION_UPDATE }
|
public enum VascEventType { DATA_UPDATE,OPTION_UPDATE,CLOSE_WINDOW }
|
||||||
|
|
||||||
public void vascEvent(VascEventType e,Object o);
|
public void vascEvent(VascEventType e,Object o);
|
||||||
|
|
||||||
|
|
|
@ -27,6 +27,7 @@
|
||||||
package com.idcanet.vasc.impl;
|
package com.idcanet.vasc.impl;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.logging.Level;
|
import java.util.logging.Level;
|
||||||
import java.util.logging.Logger;
|
import java.util.logging.Logger;
|
||||||
|
@ -37,7 +38,9 @@ import com.idcanet.vasc.core.VascTable;
|
||||||
import com.idcanet.vasc.core.VascTableController;
|
import com.idcanet.vasc.core.VascTableController;
|
||||||
import com.idcanet.vasc.core.column.VascAnnotationTableColumn;
|
import com.idcanet.vasc.core.column.VascAnnotationTableColumn;
|
||||||
import com.idcanet.vasc.core.column.VascTableColumn;
|
import com.idcanet.vasc.core.column.VascTableColumn;
|
||||||
|
import com.idcanet.vasc.core.ui.VascDate;
|
||||||
import com.idcanet.vasc.core.ui.VascTextField;
|
import com.idcanet.vasc.core.ui.VascTextField;
|
||||||
|
import com.idcanet.vasc.core.ui.VascToggle;
|
||||||
import com.idcanet.vasc.impl.column.BeanPropertyVascColumnValue;
|
import com.idcanet.vasc.impl.column.BeanPropertyVascColumnValue;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -91,8 +94,14 @@ public class DefaultVascTableController implements VascTableController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (c.getVascUIComponent()==null) {
|
if (c.getVascUIComponent()==null) {
|
||||||
|
if (c.getDefaultValue() instanceof Boolean) {
|
||||||
|
c.setVascUIComponent(new VascToggle());
|
||||||
|
} else if (c.getDefaultValue() instanceof Date) {
|
||||||
|
c.setVascUIComponent(new VascDate());
|
||||||
|
} else {
|
||||||
c.setVascUIComponent(new VascTextField());
|
c.setVascUIComponent(new VascTextField());
|
||||||
}
|
}
|
||||||
|
}
|
||||||
if (c.getVascColumnRenderer()==null) {
|
if (c.getVascColumnRenderer()==null) {
|
||||||
//c.setVascColumnRenderer(new DefaultVascColumnRenderer());
|
//c.setVascColumnRenderer(new DefaultVascColumnRenderer());
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,12 +75,16 @@ import com.idcanet.vasc.core.actions.GlobalVascAction;
|
||||||
import com.idcanet.vasc.core.actions.RowVascAction;
|
import com.idcanet.vasc.core.actions.RowVascAction;
|
||||||
import com.idcanet.vasc.core.column.VascTableColumn;
|
import com.idcanet.vasc.core.column.VascTableColumn;
|
||||||
import com.idcanet.vasc.core.ui.VascColumnValueModelListener;
|
import com.idcanet.vasc.core.ui.VascColumnValueModelListener;
|
||||||
|
import com.idcanet.vasc.core.ui.VascDate;
|
||||||
import com.idcanet.vasc.core.ui.VascList;
|
import com.idcanet.vasc.core.ui.VascList;
|
||||||
import com.idcanet.vasc.core.ui.VascTextField;
|
import com.idcanet.vasc.core.ui.VascTextField;
|
||||||
|
import com.idcanet.vasc.core.ui.VascToggle;
|
||||||
import com.idcanet.vasc.core.ui.VascUIComponent;
|
import com.idcanet.vasc.core.ui.VascUIComponent;
|
||||||
import com.idcanet.vasc.core.ui.VascValueModel;
|
import com.idcanet.vasc.core.ui.VascValueModel;
|
||||||
|
import com.idcanet.vasc.impl.swing.ui.SwingDate;
|
||||||
import com.idcanet.vasc.impl.swing.ui.SwingList;
|
import com.idcanet.vasc.impl.swing.ui.SwingList;
|
||||||
import com.idcanet.vasc.impl.swing.ui.SwingTextField;
|
import com.idcanet.vasc.impl.swing.ui.SwingTextField;
|
||||||
|
import com.idcanet.vasc.impl.swing.ui.SwingToggle;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -112,6 +116,8 @@ public class SwingVascViewRenderer implements VascViewRenderer {
|
||||||
table.getVascTableController().refreshData(table);
|
table.getVascTableController().refreshData(table);
|
||||||
table.putUIComponent(VascTextField.class, SwingTextField.class);
|
table.putUIComponent(VascTextField.class, SwingTextField.class);
|
||||||
table.putUIComponent(VascList.class, SwingList.class);
|
table.putUIComponent(VascList.class, SwingList.class);
|
||||||
|
table.putUIComponent(VascToggle.class, SwingToggle.class);
|
||||||
|
table.putUIComponent(VascDate.class, SwingDate.class);
|
||||||
|
|
||||||
this.table=table;
|
this.table=table;
|
||||||
}
|
}
|
||||||
|
|
71
src/com/idcanet/vasc/impl/swing/ui/SwingDate.java
Normal file
71
src/com/idcanet/vasc/impl/swing/ui/SwingDate.java
Normal file
|
@ -0,0 +1,71 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2007 IDCA. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||||
|
* following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and
|
||||||
|
* the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
||||||
|
* and the following disclaimer in the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR
|
||||||
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* The views and conclusions contained in the software and documentation are those of the authors and
|
||||||
|
* should not be interpreted as representing official policies, either expressed or implied, of IDCA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.idcanet.vasc.impl.swing.ui;
|
||||||
|
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
|
||||||
|
import com.idcanet.vasc.core.VascTable;
|
||||||
|
import com.idcanet.vasc.core.ui.AbstractVascUIComponent;
|
||||||
|
import com.idcanet.vasc.core.ui.VascValueModel;
|
||||||
|
import com.michaelbaranov.microba.calendar.DatePicker;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author Willem Cazander
|
||||||
|
* @version 1.0 Sep 21, 2007
|
||||||
|
*/
|
||||||
|
public class SwingDate extends AbstractVascUIComponent {
|
||||||
|
|
||||||
|
public Object createComponent(VascTable table,VascValueModel model,Object gui) throws Exception {
|
||||||
|
DatePicker def = new DatePicker();
|
||||||
|
def.setDate((Date)model.getValue());
|
||||||
|
((JComponent)gui).add(def);
|
||||||
|
def.addActionListener(new SelectActionListener2(model));
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class SelectActionListener2 implements ActionListener {
|
||||||
|
|
||||||
|
private VascValueModel model;
|
||||||
|
public SelectActionListener2(VascValueModel model) {
|
||||||
|
this.model=model;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||||
|
*/
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
Date value = ((DatePicker)e.getSource()).getDate();
|
||||||
|
model.setValue(value);
|
||||||
|
}
|
||||||
|
}
|
|
@ -60,7 +60,6 @@ public class SwingList extends AbstractVascUIComponent {
|
||||||
def = new JComboBox(l.getVascSelectItemModel().getVascSelectItems().toArray());
|
def = new JComboBox(l.getVascSelectItemModel().getVascSelectItems().toArray());
|
||||||
}
|
}
|
||||||
((JComponent)gui).add(def);
|
((JComponent)gui).add(def);
|
||||||
|
|
||||||
def.setRenderer(new MyCellRenderer());
|
def.setRenderer(new MyCellRenderer());
|
||||||
def.addActionListener(new ActionListener() {
|
def.addActionListener(new ActionListener() {
|
||||||
public void actionPerformed(ActionEvent e) {
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
@ -68,6 +67,21 @@ public class SwingList extends AbstractVascUIComponent {
|
||||||
model.setValue(i.getValue());
|
model.setValue(i.getValue());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (model.getValue()==null) {
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
|
||||||
|
// set default !!
|
||||||
|
for (int i=0;i<def.getModel().getSize();i++) {
|
||||||
|
Object o = def.getModel().getElementAt(i);
|
||||||
|
VascSelectItem i2 = (VascSelectItem)o;
|
||||||
|
if ( model.getValue().equals(i2.getValue()) ) {
|
||||||
|
def.setSelectedItem(i2);
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return def;
|
return def;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
70
src/com/idcanet/vasc/impl/swing/ui/SwingToggle.java
Normal file
70
src/com/idcanet/vasc/impl/swing/ui/SwingToggle.java
Normal file
|
@ -0,0 +1,70 @@
|
||||||
|
/*
|
||||||
|
* Copyright 2004-2007 IDCA. All rights reserved.
|
||||||
|
*
|
||||||
|
* Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
||||||
|
* following conditions are met:
|
||||||
|
*
|
||||||
|
* 1. Redistributions of source code must retain the above copyright notice, this list of conditions and
|
||||||
|
* the following disclaimer.
|
||||||
|
* 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
|
||||||
|
* and the following disclaimer in the documentation and/or other materials provided with the
|
||||||
|
* distribution.
|
||||||
|
*
|
||||||
|
* THIS SOFTWARE IS PROVIDED BY IDCA AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
||||||
|
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL IDCA OR
|
||||||
|
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
* CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||||
|
* SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
|
||||||
|
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
|
||||||
|
* OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
* POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
*
|
||||||
|
* The views and conclusions contained in the software and documentation are those of the authors and
|
||||||
|
* should not be interpreted as representing official policies, either expressed or implied, of IDCA.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package com.idcanet.vasc.impl.swing.ui;
|
||||||
|
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
|
||||||
|
import javax.swing.JCheckBox;
|
||||||
|
import javax.swing.JComponent;
|
||||||
|
|
||||||
|
import com.idcanet.vasc.core.VascTable;
|
||||||
|
import com.idcanet.vasc.core.ui.AbstractVascUIComponent;
|
||||||
|
import com.idcanet.vasc.core.ui.VascValueModel;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* @author Willem Cazander
|
||||||
|
* @version 1.0 Sep 21, 2007
|
||||||
|
*/
|
||||||
|
public class SwingToggle extends AbstractVascUIComponent {
|
||||||
|
|
||||||
|
public Object createComponent(VascTable table,VascValueModel model,Object gui) throws Exception {
|
||||||
|
JCheckBox def = new JCheckBox();
|
||||||
|
def.setSelected((Boolean)model.getValue());
|
||||||
|
((JComponent)gui).add(def);
|
||||||
|
def.addActionListener(new SelectActionListener(model));
|
||||||
|
return def;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
class SelectActionListener implements ActionListener {
|
||||||
|
|
||||||
|
private VascValueModel model;
|
||||||
|
public SelectActionListener(VascValueModel model) {
|
||||||
|
this.model=model;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
|
||||||
|
*/
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
boolean value = ((JCheckBox)e.getSource()).isSelected();
|
||||||
|
model.setValue(value);
|
||||||
|
}
|
||||||
|
}
|
|
@ -26,6 +26,8 @@
|
||||||
|
|
||||||
package com.idcanet.vasc;
|
package com.idcanet.vasc;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import com.idcanet.vasc.core.VascTable;
|
import com.idcanet.vasc.core.VascTable;
|
||||||
import com.idcanet.vasc.core.column.VascAnnotationTableColumn;
|
import com.idcanet.vasc.core.column.VascAnnotationTableColumn;
|
||||||
import com.idcanet.vasc.core.column.VascTableColumn;
|
import com.idcanet.vasc.core.column.VascTableColumn;
|
||||||
|
@ -108,6 +110,14 @@ public class TestTable {
|
||||||
column = new VascAnnotationTableColumn("description");
|
column = new VascAnnotationTableColumn("description");
|
||||||
table.addTableColumns(column);
|
table.addTableColumns(column);
|
||||||
|
|
||||||
|
column = new VascAnnotationTableColumn("active");
|
||||||
|
column.setDefaultValue(true);
|
||||||
|
table.addTableColumns(column);
|
||||||
|
|
||||||
|
column = new VascAnnotationTableColumn("date");
|
||||||
|
column.setDefaultValue(new Date());
|
||||||
|
table.addTableColumns(column);
|
||||||
|
|
||||||
column = new VascAnnotationTableColumn("testModel");
|
column = new VascAnnotationTableColumn("testModel");
|
||||||
VascList list = new VascList();
|
VascList list = new VascList();
|
||||||
list.setVascSelectItemModel(data);
|
list.setVascSelectItemModel(data);
|
||||||
|
|
|
@ -53,6 +53,7 @@ public class TestModel {
|
||||||
private String name = null;
|
private String name = null;
|
||||||
private String description = null;
|
private String description = null;
|
||||||
private Float price = null;
|
private Float price = null;
|
||||||
|
private Boolean active = null;
|
||||||
private Date date = null;
|
private Date date = null;
|
||||||
private TestModel testModel = null;
|
private TestModel testModel = null;
|
||||||
|
|
||||||
|
@ -131,4 +132,21 @@ public class TestModel {
|
||||||
public void setTestModel(TestModel testModel) {
|
public void setTestModel(TestModel testModel) {
|
||||||
this.testModel = testModel;
|
this.testModel = testModel;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return the active
|
||||||
|
*/
|
||||||
|
public Boolean getActive() {
|
||||||
|
return active;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param active the active to set
|
||||||
|
*/
|
||||||
|
public void setActive(Boolean active) {
|
||||||
|
this.active = active;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
Loading…
Reference in a new issue