Jaxx-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- 3898 discussions
r2334 - in trunk: jaxx-runtime/src/main/java/jaxx/runtime jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer jaxx-widgets/src/main/java/jaxx/runtime/swing jaxx-widgets/src/main/java/jaxx/runtime/swing/editor jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config
by sletellier@users.nuiton.org 15 Jun '12
by sletellier@users.nuiton.org 15 Jun '12
15 Jun '12
Author: sletellier
Date: 2012-06-15 12:02:35 +0200 (Fri, 15 Jun 2012)
New Revision: 2334
Url: http://nuiton.org/repositories/revision/jaxx/2334
Log:
- Create JAXXWidgetUtil extend SwingUtil
- Add cell editor for Date and File
- Add cell renderer for Date
Added:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.java
Modified:
trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java
trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2012-06-15 07:38:00 UTC (rev 2333)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/SwingUtil.java 2012-06-15 10:02:35 UTC (rev 2334)
@@ -889,7 +889,7 @@
}
public static TableCellRenderer newBooleanTableCellRenderer(
- DefaultTableCellRenderer renderer) {
+ TableCellRenderer renderer) {
return new BooleanCellRenderer(renderer);
}
Modified: trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java
===================================================================
--- trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java 2012-06-15 07:38:00 UTC (rev 2333)
+++ trunk/jaxx-runtime/src/main/java/jaxx/runtime/swing/renderer/BooleanCellRenderer.java 2012-06-15 10:02:35 UTC (rev 2334)
@@ -24,6 +24,8 @@
*/
package jaxx.runtime.swing.renderer;
+import java.awt.Color;
+import java.awt.Component;
import javax.swing.Icon;
import javax.swing.JCheckBox;
import javax.swing.JComponent;
@@ -31,9 +33,6 @@
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.table.TableCellRenderer;
-import java.awt.BorderLayout;
-import java.awt.Color;
-import java.awt.Component;
/**
* @author tchemit <chemit(a)codelutin.com>
@@ -50,7 +49,6 @@
public BooleanCellRenderer(TableCellRenderer delegate) {
//super(new BorderLayout());
this.checkBox = new JCheckBox();
- add(checkBox, BorderLayout.CENTER);
checkBox.setHorizontalAlignment(JLabel.CENTER);
checkBox.setBorderPainted(true);
this.defaultDelegate = delegate;
@@ -59,7 +57,6 @@
public BooleanCellRenderer(TableCellRenderer delegate, Icon icon) {
//super(new BorderLayout());
this.checkBox = new JCheckBox(icon);
- add(checkBox, BorderLayout.NORTH);
checkBox.setHorizontalAlignment(JLabel.CENTER);
checkBox.setVerticalTextPosition(JLabel.TOP);
checkBox.setBorderPainted(true);
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java 2012-06-15 07:38:00 UTC (rev 2333)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java 2012-06-15 10:02:35 UTC (rev 2334)
@@ -28,6 +28,8 @@
import javax.swing.JPanel;
/**
+ * TODO sletellier 15/06/2012 : find a better way to add onActionPerform on custom components
+ *
* @author sletellier <letellier(a)codelutin.com>
*/
public abstract class BaseActionPanel extends JPanel {
Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java (rev 0)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXWidgetUtil.java 2012-06-15 10:02:35 UTC (rev 2334)
@@ -0,0 +1,53 @@
+/*
+ * #%L
+ * JAXX :: Widgets
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2008 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package jaxx.runtime.swing;
+
+import javax.swing.table.TableCellEditor;
+import javax.swing.table.TableCellRenderer;
+import jaxx.runtime.SwingUtil;
+import jaxx.runtime.swing.editor.DateCellEditor;
+import jaxx.runtime.swing.editor.FileCellEditor;
+import jaxx.runtime.swing.renderer.DateCellRenderer;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class JAXXWidgetUtil extends SwingUtil {
+
+ public static TableCellRenderer newDateTableCellRenderer(TableCellRenderer renderer) {
+ return newDateTableCellRenderer(renderer, null);
+ }
+
+ public static TableCellRenderer newDateTableCellRenderer(TableCellRenderer renderer, String datePattern) {
+ return new DateCellRenderer(renderer, datePattern);
+ }
+
+ public static TableCellEditor newDateTableCellEditor() {
+ return new DateCellEditor();
+ }
+
+ public static TableCellEditor newFileTableCellEditor() {
+ return new FileCellEditor();
+ }
+}
Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java (rev 0)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/DateCellEditor.java 2012-06-15 10:02:35 UTC (rev 2334)
@@ -0,0 +1,55 @@
+/*
+ * #%L
+ * JAXX :: Widgets
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2008 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package jaxx.runtime.swing.editor;
+
+import java.awt.Component;
+import java.util.Date;
+import javax.swing.AbstractCellEditor;
+import javax.swing.JTable;
+import javax.swing.table.TableCellEditor;
+import jaxx.runtime.swing.JAXXDatePicker;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class DateCellEditor extends AbstractCellEditor
+ implements TableCellEditor {
+
+ protected JAXXDatePicker datePicker;
+
+ public DateCellEditor() {
+ datePicker = new JAXXDatePicker();
+ }
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+ datePicker.setDate((Date) value);
+ return datePicker;
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+ return datePicker.getDate();
+ }
+}
\ No newline at end of file
Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.java (rev 0)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileCellEditor.java 2012-06-15 10:02:35 UTC (rev 2334)
@@ -0,0 +1,54 @@
+/*
+ * #%L
+ * JAXX :: Widgets
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2008 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package jaxx.runtime.swing.editor;
+
+import java.awt.Component;
+import java.io.File;
+import javax.swing.AbstractCellEditor;
+import javax.swing.JTable;
+import javax.swing.table.TableCellEditor;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class FileCellEditor extends AbstractCellEditor
+ implements TableCellEditor {
+
+ protected FileEditor fileEditor;
+
+ public FileCellEditor() {
+ fileEditor = new FileEditor();
+ }
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+ fileEditor.setSelectedFile((File)value);
+ return fileEditor;
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+ return fileEditor.getSelectedFile();
+ }
+}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java 2012-06-15 07:38:00 UTC (rev 2333)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java 2012-06-15 10:02:35 UTC (rev 2334)
@@ -29,14 +29,13 @@
import java.io.File;
import java.util.EventObject;
import java.util.Locale;
-import javax.swing.AbstractCellEditor;
import javax.swing.DefaultCellEditor;
import javax.swing.JTable;
import javax.swing.event.CellEditorListener;
import javax.swing.table.TableCellEditor;
+import jaxx.runtime.swing.JAXXWidgetUtil;
import jaxx.runtime.swing.editor.ClassCellEditor;
import jaxx.runtime.swing.editor.EnumEditor;
-import jaxx.runtime.swing.editor.FileEditor;
import jaxx.runtime.swing.editor.LocaleEditor;
import jaxx.runtime.swing.editor.config.model.ConfigTableModel;
import jaxx.runtime.swing.editor.config.model.OptionModel;
@@ -119,7 +118,7 @@
table.setDefaultEditor(type, editor);
} else if (type.equals(File.class)){
- editor = new FileCellEditor();
+ editor = JAXXWidgetUtil.newFileTableCellEditor();
table.setDefaultEditor(type, editor);
} else if (type.equals(Locale.class)) {
@@ -139,25 +138,4 @@
protected boolean hasDelegate() {
return delegate != null;
}
-
- protected static class FileCellEditor extends AbstractCellEditor
- implements TableCellEditor {
-
- protected FileEditor fileEditor;
-
- public FileCellEditor() {
- fileEditor = new FileEditor();
- }
-
- @Override
- public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
- fileEditor.setSelectedFile((File)value);
- return fileEditor;
- }
-
- @Override
- public Object getCellEditorValue() {
- return fileEditor.getSelectedFile();
- }
- }
}
1
0
r2333 - in trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing: . editor
by sletellier@users.nuiton.org 15 Jun '12
by sletellier@users.nuiton.org 15 Jun '12
15 Jun '12
Author: sletellier
Date: 2012-06-15 09:38:00 +0200 (Fri, 15 Jun 2012)
New Revision: 2333
Url: http://nuiton.org/repositories/revision/jaxx/2333
Log:
Fix FileEditor layout
Modified:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java 2012-06-14 17:32:58 UTC (rev 2332)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java 2012-06-15 07:38:00 UTC (rev 2333)
@@ -32,7 +32,6 @@
*/
public abstract class BaseActionPanel extends JPanel {
-
/**
* Notifies all listeners that have registered interest for
* notification on this event type.
@@ -53,7 +52,6 @@
}
}
-
/**
* Adds an <code>ActionListener</code>.
* <p>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx 2012-06-14 17:32:58 UTC (rev 2332)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx 2012-06-15 07:38:00 UTC (rev 2333)
@@ -21,11 +21,12 @@
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
-<BaseActionPanel>
+<BaseActionPanel layout='{new BorderLayout()}'>
<import>
java.io.File
java.beans.PropertyChangeEvent
java.beans.PropertyChangeListener
+ jaxx.runtime.swing.BaseActionPanel
</import>
<FileEditorHandler id='handler' constructorParams='this'/>
@@ -47,35 +48,30 @@
<String id='extsDescription' javaBean='null'/>
<script><![CDATA[
- protected void $afterCompleteSetup() {
+ protected void $afterCompleteSetup() {
- addPropertyChangeListener(PROPERTY_SELECTED_FILE, new PropertyChangeListener() {
+ addPropertyChangeListener(PROPERTY_SELECTED_FILE, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (selectedFile != null) {
- pathField.setText(selectedFile.getAbsolutePath());
- fireActionEvent();
- }
- }
- });
- }
- ]]></script>
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (selectedFile != null) {
+ pathField.setText(selectedFile.getAbsolutePath());
+ fireActionEvent();
+ }
+ }
+ });
+ }
+ ]]></script>
- <Table constraints='BorderLayout.CENTER'>
- <row>
- <cell fill='horizontal' weightx='1'>
- <JTextField id='pathField'
- enabled='{isEnabled()}'
- text='{getStartPath()}'
- onFocusLost='setSelectedFile(new File(pathField.getText()))'/>
- </cell>
- <cell>
- <JButton id='boutonXslLocation'
- enabled='{isEnabled()}'
- actionIcon='open'
- onActionPerformed='handler.openLocation()'/>
- </cell>
- </row>
- </Table>
+ <JTextField id='pathField'
+ constraints='{BorderLayout.CENTER}'
+ enabled='{isEnabled()}'
+ text='{getStartPath()}'
+ onFocusLost='setSelectedFile(new File(pathField.getText()))'/>
+
+ <JButton id='boutonXslLocation'
+ constraints='{BorderLayout.EAST}'
+ enabled='{isEnabled()}'
+ actionIcon='open'
+ onActionPerformed='handler.openLocation()'/>
</BaseActionPanel>
\ No newline at end of file
1
0
r2332 - in trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing: . editor
by sletellier@users.nuiton.org 14 Jun '12
by sletellier@users.nuiton.org 14 Jun '12
14 Jun '12
Author: sletellier
Date: 2012-06-14 19:32:58 +0200 (Thu, 14 Jun 2012)
New Revision: 2332
Url: http://nuiton.org/repositories/revision/jaxx/2332
Log:
Allow using onActionPerformed on FileEditor
Added:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java
Modified:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java (rev 0)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/BaseActionPanel.java 2012-06-14 17:32:58 UTC (rev 2332)
@@ -0,0 +1,78 @@
+/*
+ * #%L
+ * JAXX :: Widgets
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2008 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package jaxx.runtime.swing;
+
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import javax.swing.JPanel;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public abstract class BaseActionPanel extends JPanel {
+
+
+ /**
+ * Notifies all listeners that have registered interest for
+ * notification on this event type.
+ *
+ * @see javax.swing.event.EventListenerList
+ */
+ protected void fireActionEvent() {
+ ActionEvent e = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "actionPerformed");
+
+ // Guaranteed to return a non-null array
+ Object[] listeners = listenerList.getListenerList();
+ // Process the listeners last to first, notifying
+ // those that are interested in this event
+ for (Object listener : listeners) {
+ if (ActionListener.class.isInstance(listener)) {
+ ((ActionListener)listener).actionPerformed(e);
+ }
+ }
+ }
+
+
+ /**
+ * Adds an <code>ActionListener</code>.
+ * <p>
+ * The <code>ActionListener</code> will receive an <code>ActionEvent</code>
+ * when a selection has been made. If the combo box is editable, then
+ * an <code>ActionEvent</code> will be fired when editing has stopped.
+ *
+ * @param l the <code>ActionListener</code> that is to be notified
+ * @see #setSelectedItem
+ */
+ public void addActionListener(ActionListener l) {
+ listenerList.add(ActionListener.class,l);
+ }
+
+ /** Removes an <code>ActionListener</code>.
+ *
+ * @param l the <code>ActionListener</code> to remove
+ */
+ public void removeActionListener(ActionListener l) {
+ listenerList.remove(ActionListener.class, l);
+ }
+}
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx 2012-06-14 15:47:32 UTC (rev 2331)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx 2012-06-14 17:32:58 UTC (rev 2332)
@@ -21,8 +21,7 @@
<http://www.gnu.org/licenses/lgpl-3.0.html>.
#L%
-->
-<Table>
-
+<BaseActionPanel>
<import>
java.io.File
java.beans.PropertyChangeEvent
@@ -39,7 +38,7 @@
<File id='selectedFile' javaBean='null'/>
- <File id='startFile' javaBean='null'/>
+ <String id='startPath' javaBean='null'/>
<String id='title' javaBean='null'/>
@@ -48,41 +47,35 @@
<String id='extsDescription' javaBean='null'/>
<script><![CDATA[
- protected void $afterCompleteSetup() {
+ protected void $afterCompleteSetup() {
- addPropertyChangeListener(PROPERTY_START_FILE, new PropertyChangeListener() {
+ addPropertyChangeListener(PROPERTY_SELECTED_FILE, new PropertyChangeListener() {
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (startFile != null) {
- pathField.setText(startFile.getAbsolutePath());
- }
- }
- });
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (selectedFile != null) {
+ pathField.setText(selectedFile.getAbsolutePath());
+ fireActionEvent();
+ }
+ }
+ });
+ }
+ ]]></script>
- addPropertyChangeListener(PROPERTY_SELECTED_FILE, new PropertyChangeListener() {
-
- @Override
- public void propertyChange(PropertyChangeEvent evt) {
- if (selectedFile != null) {
- pathField.setText(selectedFile.getAbsolutePath());
- }
- }
- });
- }
- ]]></script>
-
- <row>
- <cell fill='horizontal' weightx='1'>
- <JTextField id='pathField'
- enabled='{isEnabled()}'
- onFocusLost='setSelectedFile(new File(pathField.getText()))'/>
- </cell>
- <cell>
- <JButton id='boutonXslLocation'
- enabled='{isEnabled()}'
- actionIcon='open'
- onActionPerformed='handler.openLocation()'/>
- </cell>
- </row>
-</Table>
\ No newline at end of file
+ <Table constraints='BorderLayout.CENTER'>
+ <row>
+ <cell fill='horizontal' weightx='1'>
+ <JTextField id='pathField'
+ enabled='{isEnabled()}'
+ text='{getStartPath()}'
+ onFocusLost='setSelectedFile(new File(pathField.getText()))'/>
+ </cell>
+ <cell>
+ <JButton id='boutonXslLocation'
+ enabled='{isEnabled()}'
+ actionIcon='open'
+ onActionPerformed='handler.openLocation()'/>
+ </cell>
+ </row>
+ </Table>
+</BaseActionPanel>
\ No newline at end of file
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java 2012-06-14 15:47:32 UTC (rev 2331)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java 2012-06-14 17:32:58 UTC (rev 2332)
@@ -44,13 +44,14 @@
// use last selected file
File startFile = view.getSelectedFile();
- if (startFile == null) {
+ String startPath = view.getStartPath();
+ if (startFile == null && startPath != null) {
- // else filed start file
- startFile = view.getStartFile();
- }
- if (startFile == null) {
+ // else filed start path
+ startFile = new File(startPath);
+ } else {
+
// else start with user home
startFile = new File(System.getProperty("user.home"));
}
@@ -85,7 +86,12 @@
// extentions can be separted by comma
String[] exts = extsAsString.split(SEPARATOR_REGEX);
- String[] descs = view.getExtsDescription().split(SEPARATOR_REGEX);
+ String extsDescription = view.getExtsDescription();
+
+ String[] descs = new String[0];
+ if (extsDescription != null) {
+ descs = extsDescription.split(SEPARATOR_REGEX);
+ }
for (int i = 0;i<exts.length;i++) {
// use ext if no desc found
1
0
r2331 - in trunk: jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor jaxx-demo/src/main/resources/i18n jaxx-widgets/src/main/java/jaxx/runtime/swing/editor jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config
by sletellier@users.nuiton.org 14 Jun '12
by sletellier@users.nuiton.org 14 Jun '12
14 Jun '12
Author: sletellier
Date: 2012-06-14 17:47:32 +0200 (Thu, 14 Jun 2012)
New Revision: 2331
Url: http://nuiton.org/repositories/revision/jaxx/2331
Log:
- fixes #2138 : Use FileEditor to input File in ApplicationConfigUI
- create demo ui
- refs #2137 : improve FileEditor and demo
Modified:
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.css
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx 2012-06-14 15:47:32 UTC (rev 2331)
@@ -28,7 +28,10 @@
<String id='title' javaBean='"Open file"'/>
<String id='exts' javaBean='"txt, png"'/>
- <String id='extsDescription' javaBean='"Text (*.txt), Images (*.png)"'/>
+ <String id='extsDescription' javaBean='"Text (*.txt), Image (*.png)"'/>
+ <Boolean id='acceptAllFileFilterUsed' javaBean='Boolean.TRUE'/>
+ <Boolean id='directoryEnabled' javaBean='Boolean.TRUE'/>
+ <Boolean id='fileEnabled' javaBean='Boolean.FALSE'/>
<Table fill='both'>
<row>
@@ -43,10 +46,31 @@
</row>
<row>
<cell fill='horizontal' weightx='1'>
+ <JLabel text='jaxxdemo.fileEditor.directoryEnabled'/>
+ </cell>
+ <cell fill='horizontal' weightx='1'>
+ <JCheckBox id='directoryEnabledField'
+ selected='{isDirectoryEnabled()}'
+ onActionPerformed='setDirectoryEnabled(directoryEnabledField.isSelected())'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal' weightx='1'>
+ <JLabel text='jaxxdemo.fileEditor.fileEnabled'/>
+ </cell>
+ <cell fill='horizontal' weightx='1'>
+ <JCheckBox id='fileEnabledField'
+ selected='{isFileEnabled()}'
+ onActionPerformed='setFileEnabled(fileEnabledField.isSelected())'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal' weightx='1'>
<JLabel text='jaxxdemo.fileEditor.extsLbl'/>
</cell>
<cell fill='horizontal' weightx='1'>
<JTextField id='extsField'
+ enabled='{isFileEnabled()}'
text='{getExts()}'
onKeyReleased='setExts(extsField.getText())'/>
</cell>
@@ -57,15 +81,29 @@
</cell>
<cell fill='horizontal' weightx='1'>
<JTextField id='extsDescriptionField'
+ enabled='{isFileEnabled()}'
text='{getExtsDescription()}'
onKeyReleased='setExtsDescription(extsDescriptionField.getText())'/>
</cell>
</row>
<row>
+ <cell fill='horizontal' weightx='1'>
+ <JLabel text='jaxxdemo.fileEditor.acceptAllFileFilterUsed'/>
+ </cell>
+ <cell fill='horizontal' weightx='1'>
+ <JCheckBox id='acceptAllFileFilterUsedField'
+ selected='{isAcceptAllFileFilterUsed()}'
+ onActionPerformed='setAcceptAllFileFilterUsed(acceptAllFileFilterUsedField.isSelected())'/>
+ </cell>
+ </row>
+ <row>
<cell fill='horizontal' weightx='1' columns='2'>
<FileEditor id='fileChooser'
title='{getTitle()}'
exts='{getExts()}'
+ directoryEnabled='{isDirectoryEnabled()}'
+ fileEnabled='{isFileEnabled()}'
+ acceptAllFileFilterUsed='{isAcceptAllFileFilterUsed()}'
extsDescription='{getExtsDescription()}'/>
</cell>
</row>
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-14 15:47:32 UTC (rev 2331)
@@ -195,8 +195,11 @@
jaxxdemo.feature.databinding=Data Binding
jaxxdemo.feature.nav=Jaxx nav API
jaxxdemo.feature.validation=Validation
+jaxxdemo.fileEditor.acceptAllFileFilterUsed=Allow all FileFilter
+jaxxdemo.fileEditor.directoryEnabled=Enable directory selection
jaxxdemo.fileEditor.extsDescLbl=Extensions description (separated by comma, ex \: text (*.txt), images (*.png))
jaxxdemo.fileEditor.extsLbl=Extensions (separated by comma, ex \: txt, png)
+jaxxdemo.fileEditor.fileEnabled=Enable file selection
jaxxdemo.fileEditor.titleLbl=Open dialog title
jaxxdemo.fun=Fun
jaxxdemo.i18neditor.configuration=Configuration
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-14 15:47:32 UTC (rev 2331)
@@ -195,8 +195,11 @@
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
jaxxdemo.feature.validation=Validation
+jaxxdemo.fileEditor.acceptAllFileFilterUsed=Accèpte tout les FileFilter
+jaxxdemo.fileEditor.directoryEnabled=Activer la sélection des files
jaxxdemo.fileEditor.extsDescLbl=Description des extensions (séparées par des virgules, ex \: Texte (*.txt), Images (*.png))
jaxxdemo.fileEditor.extsLbl=Extensions (separated by comma, ex \: txt, png)
+jaxxdemo.fileEditor.fileEnabled=Activer la sélection des fichiers
jaxxdemo.fileEditor.titleLbl=Titre du dialog d'ouverture de fichier
jaxxdemo.fun=Fun
jaxxdemo.i18neditor.configuration=Configuration
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-14 15:47:32 UTC (rev 2331)
@@ -195,8 +195,11 @@
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
jaxxdemo.feature.validation=Validation
+jaxxdemo.fileEditor.acceptAllFileFilterUsed=Accèpte tout les FileFilter
+jaxxdemo.fileEditor.directoryEnabled=Activer la sélection des files
jaxxdemo.fileEditor.extsDescLbl=Description des extensions (séparées par des virgules, ex \: Texte (*.txt), Images (*.png))
jaxxdemo.fileEditor.extsLbl=Extensions (separated by comma, ex \: txt, png)
+jaxxdemo.fileEditor.fileEnabled=Activer la sélection des fichiers
jaxxdemo.fileEditor.titleLbl=Titre de la fenêtre de sélection de fichier
jaxxdemo.fun=Fun
jaxxdemo.i18neditor.configuration=Configuration
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx 2012-06-14 15:47:32 UTC (rev 2331)
@@ -33,6 +33,10 @@
<Boolean id='acceptAllFileFilterUsed' javaBean='Boolean.TRUE'/>
+ <Boolean id='directoryEnabled' javaBean='Boolean.TRUE'/>
+
+ <Boolean id='fileEnabled' javaBean='Boolean.TRUE'/>
+
<File id='selectedFile' javaBean='null'/>
<File id='startFile' javaBean='null'/>
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java 2012-06-14 15:47:32 UTC (rev 2331)
@@ -59,31 +59,61 @@
fc.setDialogTitle(view.getTitle());
fc.setAcceptAllFileFilterUsed(view.getAcceptAllFileFilterUsed());
- String extsAsString = view.getExts();
- if (extsAsString != null) {
+ // TODO sletellier 14/06/2012 : activate multi selection
+// boolean multiSelectionEnabled = view.isMultiSelectionEnabled();
+// fc.setMultiSelectionEnabled(multiSelectionEnabled);
- // extentions can be separted by comma
- String[] exts = extsAsString.split(SEPARATOR_REGEX);
- String[] descs = view.getExtsDescription().split(SEPARATOR_REGEX);
- for (int i = 0;i<exts.length;i++) {
+ // used to enable directory selection
+ boolean directoryEnabled = view.isDirectoryEnabled();
+ if (directoryEnabled) {
+ fc.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
+ }
- // use ext if no desc found
- String ext = exts[i];
- String desc = ext;
- if (descs.length > i) {
- desc = descs[i];
- }
+ // used to enable file selection
+ boolean fileEnabled = view.isFileEnabled();
+ if (fileEnabled) {
- fc.addChoosableFileFilter(new ExtentionFileFiler(ext, desc));
+ if (directoryEnabled) {
+
+ // both
+ fc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
+ } else {
+ fc.setFileSelectionMode(JFileChooser.FILES_ONLY);
}
+ String extsAsString = view.getExts();
+ if (extsAsString != null) {
+
+ // extentions can be separted by comma
+ String[] exts = extsAsString.split(SEPARATOR_REGEX);
+ String[] descs = view.getExtsDescription().split(SEPARATOR_REGEX);
+ for (int i = 0;i<exts.length;i++) {
+
+ // use ext if no desc found
+ String ext = exts[i];
+ String desc = ext;
+ if (descs.length > i) {
+ desc = descs[i];
+ }
+
+ fc.addChoosableFileFilter(new ExtentionFileFiler(ext, desc));
+ }
+ }
}
+ // directory or/and file must be enabled
+ if (!directoryEnabled && !fileEnabled) {
+ throw new IllegalArgumentException("You must enable at least file or directory to open dialog");
+ }
+
// show dialog
- fc.showOpenDialog(view);
+ int returnVal = fc.showOpenDialog(view);
+ if (returnVal == JFileChooser.APPROVE_OPTION) {
- // get selected to display in ui
- File file = fc.getSelectedFile();
- view.setSelectedFile(file);
+ // get selected to display in ui
+ File file = fc.getSelectedFile();
+
+ view.setSelectedFile(file);
+ }
}
public static class ExtentionFileFiler extends FileFilter {
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.css
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.css 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigCategoryUI.css 2012-06-14 15:47:32 UTC (rev 2331)
@@ -50,6 +50,7 @@
rowSelectionAllowed:false;
autoCreateRowSorter:true;
autoResizeMode:{JTable.AUTO_RESIZE_ALL_COLUMNS};
+ rowHeight:25;
}
#reset{
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java 2012-06-14 13:17:44 UTC (rev 2330)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/config/ConfigTableEditor.java 2012-06-14 15:47:32 UTC (rev 2331)
@@ -25,19 +25,20 @@
package jaxx.runtime.swing.editor.config;
-import jaxx.runtime.swing.editor.config.model.ConfigTableModel;
-
+import java.awt.Component;
+import java.io.File;
+import java.util.EventObject;
+import java.util.Locale;
+import javax.swing.AbstractCellEditor;
import javax.swing.DefaultCellEditor;
import javax.swing.JTable;
import javax.swing.event.CellEditorListener;
import javax.swing.table.TableCellEditor;
-import java.awt.Component;
-import java.util.EventObject;
-import java.util.Locale;
-
import jaxx.runtime.swing.editor.ClassCellEditor;
import jaxx.runtime.swing.editor.EnumEditor;
+import jaxx.runtime.swing.editor.FileEditor;
import jaxx.runtime.swing.editor.LocaleEditor;
+import jaxx.runtime.swing.editor.config.model.ConfigTableModel;
import jaxx.runtime.swing.editor.config.model.OptionModel;
/**
@@ -106,22 +107,25 @@
TableCellEditor editor = table.getDefaultEditor(type);
TableCellEditor defaultEditor = table.getDefaultEditor(Object.class);
//TODO always Search from option.getEditor() and store editor as cache
- if (editor == defaultEditor) {
+ if (editor.equals(defaultEditor)) {
// find not a specialized editor for the type
if (type.isEnum()) {
// add a EnumEditor to table
editor = new DefaultCellEditor(EnumEditor.newEditor((Class<Enum>) type));
table.setDefaultEditor(type, editor);
- } else if (type == Class.class) {
+
+ } else if (type.equals(Class.class)) {
editor = new ClassCellEditor();
table.setDefaultEditor(type, editor);
- } //else if (type == File.class){
- // TODO a FileEditor
- // table.setDefaultEditor(type, delegate);
- //}
- else if (type.equals(Locale.class)) {
+
+ } else if (type.equals(File.class)){
+ editor = new FileCellEditor();
+ table.setDefaultEditor(type, editor);
+
+ } else if (type.equals(Locale.class)) {
editor = new DefaultCellEditor(LocaleEditor.newEditor());
table.setDefaultEditor(Locale.class, editor);
+
} else {
editor = table.getDefaultEditor(String.class);
}
@@ -135,4 +139,25 @@
protected boolean hasDelegate() {
return delegate != null;
}
+
+ protected static class FileCellEditor extends AbstractCellEditor
+ implements TableCellEditor {
+
+ protected FileEditor fileEditor;
+
+ public FileCellEditor() {
+ fileEditor = new FileEditor();
+ }
+
+ @Override
+ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
+ fileEditor.setSelectedFile((File)value);
+ return fileEditor;
+ }
+
+ @Override
+ public Object getCellEditorValue() {
+ return fileEditor.getSelectedFile();
+ }
+ }
}
1
0
r2330 - trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor
by sletellier@users.nuiton.org 14 Jun '12
by sletellier@users.nuiton.org 14 Jun '12
14 Jun '12
Author: sletellier
Date: 2012-06-14 15:17:44 +0200 (Thu, 14 Jun 2012)
New Revision: 2330
Url: http://nuiton.org/repositories/revision/jaxx/2330
Log:
Prevent arrayOutOfBoundException
Modified:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java 2012-06-14 13:12:29 UTC (rev 2329)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java 2012-06-14 13:17:44 UTC (rev 2330)
@@ -67,7 +67,14 @@
String[] descs = view.getExtsDescription().split(SEPARATOR_REGEX);
for (int i = 0;i<exts.length;i++) {
- fc.addChoosableFileFilter(new ExtentionFileFiler(exts[i], descs[i]));
+ // use ext if no desc found
+ String ext = exts[i];
+ String desc = ext;
+ if (descs.length > i) {
+ desc = descs[i];
+ }
+
+ fc.addChoosableFileFilter(new ExtentionFileFiler(ext, desc));
}
}
1
0
r2329 - in trunk: jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor jaxx-demo/src/main/java/jaxx/demo/tree jaxx-demo/src/main/resources/i18n jaxx-widgets jaxx-widgets/src/main/java/jaxx/runtime/swing/editor jaxx-widgets/src/main/resources/icons
by sletellier@users.nuiton.org 14 Jun '12
by sletellier@users.nuiton.org 14 Jun '12
14 Jun '12
Author: sletellier
Date: 2012-06-14 15:12:29 +0200 (Thu, 14 Jun 2012)
New Revision: 2329
Url: http://nuiton.org/repositories/revision/jaxx/2329
Log:
- fixes #2137 : Add component to choose a file
- add file choose demo ui
- add guava dependency
- add open icon
Added:
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
trunk/jaxx-widgets/src/main/resources/icons/action-open.png
Modified:
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx
trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
trunk/jaxx-widgets/pom.xml
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx 2012-06-14 09:50:58 UTC (rev 2328)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx 2012-06-14 13:12:29 UTC (rev 2329)
@@ -61,7 +61,7 @@
<Table fill='both'>
<row>
- <cell columns='2'>
+ <cell columns='2' fill='horizontal' weightx='1'>
<JCheckBox id='showPopupButton'
text='jaxxdemo.datePickerEditor.showPopupButton'
selected='false'/>
@@ -71,17 +71,14 @@
<cell>
<JLabel text='jaxxdemo.datePickerEditor.patternLayout'/>
</cell>
- <cell>
+ <cell fill='horizontal' weightx='1'>
<JTextField id='patternLayoutField'
text='{patternLayout}'
onFocusLost='setPatternLayout(patternLayoutField.getText())'/>
</cell>
</row>
<row>
- <cell>
- <JLabel text='jaxxdemo.i18neditor.datePicker'/>
- </cell>
- <cell>
+ <cell fill='horizontal' weightx='1' columns='2'>
<JAXXDatePicker id='datePicker'
date='{date}'
patternLayout='{patternLayout}'
@@ -93,7 +90,7 @@
<cell>
<JLabel text='jaxxdemo.datePickerEditor.dateResult'/>
</cell>
- <cell>
+ <cell fill='horizontal' weightx='1'>
<JLabel id='resultView' text='{dateFormat.format(date)}'/>
</cell>
</row>
Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx (rev 0)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/FileEditorDemo.jaxx 2012-06-14 13:12:29 UTC (rev 2329)
@@ -0,0 +1,73 @@
+<!--
+ #%L
+ JAXX :: Demo
+ $Id:$
+ $HeadURL:$
+ %%
+ Copyright (C) 2008 - 2012 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
+<jaxx.demo.DemoPanel>
+ <import>
+ jaxx.runtime.swing.editor.FileEditor
+ </import>
+
+ <String id='title' javaBean='"Open file"'/>
+ <String id='exts' javaBean='"txt, png"'/>
+ <String id='extsDescription' javaBean='"Text (*.txt), Images (*.png)"'/>
+
+ <Table fill='both'>
+ <row>
+ <cell fill='horizontal' weightx='1'>
+ <JLabel text='jaxxdemo.fileEditor.titleLbl'/>
+ </cell>
+ <cell fill='horizontal' weightx='1'>
+ <JTextField id='titleField'
+ text='{getTitle()}'
+ onKeyReleased='setTitle(titleField.getText())'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal' weightx='1'>
+ <JLabel text='jaxxdemo.fileEditor.extsLbl'/>
+ </cell>
+ <cell fill='horizontal' weightx='1'>
+ <JTextField id='extsField'
+ text='{getExts()}'
+ onKeyReleased='setExts(extsField.getText())'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal' weightx='1'>
+ <JLabel text='jaxxdemo.fileEditor.extsDescLbl'/>
+ </cell>
+ <cell fill='horizontal' weightx='1'>
+ <JTextField id='extsDescriptionField'
+ text='{getExtsDescription()}'
+ onKeyReleased='setExtsDescription(extsDescriptionField.getText())'/>
+ </cell>
+ </row>
+ <row>
+ <cell fill='horizontal' weightx='1' columns='2'>
+ <FileEditor id='fileChooser'
+ title='{getTitle()}'
+ exts='{getExts()}'
+ extsDescription='{getExtsDescription()}'/>
+ </cell>
+ </row>
+ </Table>
+</jaxx.demo.DemoPanel>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java 2012-06-14 09:50:58 UTC (rev 2328)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java 2012-06-14 13:12:29 UTC (rev 2329)
@@ -33,6 +33,7 @@
import jaxx.demo.component.jaxx.StatusMessagePanelDemo;
import jaxx.demo.component.jaxx.editor.ComboEditorDemo;
import jaxx.demo.component.jaxx.editor.DatePickerDemo;
+import jaxx.demo.component.jaxx.editor.FileEditorDemo;
import jaxx.demo.component.jaxx.editor.I18nEditorDemo;
import jaxx.demo.component.jaxx.editor.NumberEditorDemo;
import jaxx.demo.component.jaxx.editor.TimeEditorDemo;
@@ -153,7 +154,8 @@
NumberEditorDemo.class,
ComboEditorDemo.class,
I18nEditorDemo.class,
- DatePickerDemo.class
+ DatePickerDemo.class,
+ FileEditorDemo.class
);
addMapping(n_("jaxxdemo.feature"),
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-14 09:50:58 UTC (rev 2328)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-14 13:12:29 UTC (rev 2329)
@@ -195,6 +195,9 @@
jaxxdemo.feature.databinding=Data Binding
jaxxdemo.feature.nav=Jaxx nav API
jaxxdemo.feature.validation=Validation
+jaxxdemo.fileEditor.extsDescLbl=Extensions description (separated by comma, ex \: text (*.txt), images (*.png))
+jaxxdemo.fileEditor.extsLbl=Extensions (separated by comma, ex \: txt, png)
+jaxxdemo.fileEditor.titleLbl=Open dialog title
jaxxdemo.fun=Fun
jaxxdemo.i18neditor.configuration=Configuration
jaxxdemo.i18neditor.popup.title=Title of popup
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-14 09:50:58 UTC (rev 2328)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-14 13:12:29 UTC (rev 2329)
@@ -195,6 +195,9 @@
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
jaxxdemo.feature.validation=Validation
+jaxxdemo.fileEditor.extsDescLbl=Description des extensions (séparées par des virgules, ex \: Texte (*.txt), Images (*.png))
+jaxxdemo.fileEditor.extsLbl=Extensions (separated by comma, ex \: txt, png)
+jaxxdemo.fileEditor.titleLbl=Titre du dialog d'ouverture de fichier
jaxxdemo.fun=Fun
jaxxdemo.i18neditor.configuration=Configuration
jaxxdemo.i18neditor.popup.title=Titre de la popup
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-14 09:50:58 UTC (rev 2328)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-14 13:12:29 UTC (rev 2329)
@@ -195,6 +195,9 @@
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
jaxxdemo.feature.validation=Validation
+jaxxdemo.fileEditor.extsDescLbl=Description des extensions (séparées par des virgules, ex \: Texte (*.txt), Images (*.png))
+jaxxdemo.fileEditor.extsLbl=Extensions (separated by comma, ex \: txt, png)
+jaxxdemo.fileEditor.titleLbl=Titre de la fenêtre de sélection de fichier
jaxxdemo.fun=Fun
jaxxdemo.i18neditor.configuration=Configuration
jaxxdemo.i18neditor.popup.title=Titre de la popup
Modified: trunk/jaxx-widgets/pom.xml
===================================================================
--- trunk/jaxx-widgets/pom.xml 2012-06-14 09:50:58 UTC (rev 2328)
+++ trunk/jaxx-widgets/pom.xml 2012-06-14 13:12:29 UTC (rev 2329)
@@ -67,6 +67,11 @@
</dependency>
<dependency>
+ <groupId>com.google.guava</groupId>
+ <artifactId>guava</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
</dependency>
Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx (rev 0)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditor.jaxx 2012-06-14 13:12:29 UTC (rev 2329)
@@ -0,0 +1,84 @@
+<!--
+ #%L
+ JAXX :: Widgets
+ $Id:$
+ $HeadURL:$
+ %%
+ Copyright (C) 2008 - 2012 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
+<Table>
+
+ <import>
+ java.io.File
+ java.beans.PropertyChangeEvent
+ java.beans.PropertyChangeListener
+ </import>
+
+ <FileEditorHandler id='handler' constructorParams='this'/>
+
+ <Boolean id='acceptAllFileFilterUsed' javaBean='Boolean.TRUE'/>
+
+ <File id='selectedFile' javaBean='null'/>
+
+ <File id='startFile' javaBean='null'/>
+
+ <String id='title' javaBean='null'/>
+
+ <String id='exts' javaBean='null'/>
+
+ <String id='extsDescription' javaBean='null'/>
+
+ <script><![CDATA[
+ protected void $afterCompleteSetup() {
+
+ addPropertyChangeListener(PROPERTY_START_FILE, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (startFile != null) {
+ pathField.setText(startFile.getAbsolutePath());
+ }
+ }
+ });
+
+ addPropertyChangeListener(PROPERTY_SELECTED_FILE, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ if (selectedFile != null) {
+ pathField.setText(selectedFile.getAbsolutePath());
+ }
+ }
+ });
+ }
+ ]]></script>
+
+ <row>
+ <cell fill='horizontal' weightx='1'>
+ <JTextField id='pathField'
+ enabled='{isEnabled()}'
+ onFocusLost='setSelectedFile(new File(pathField.getText()))'/>
+ </cell>
+ <cell>
+ <JButton id='boutonXslLocation'
+ enabled='{isEnabled()}'
+ actionIcon='open'
+ onActionPerformed='handler.openLocation()'/>
+ </cell>
+ </row>
+</Table>
\ No newline at end of file
Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java (rev 0)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/editor/FileEditorHandler.java 2012-06-14 13:12:29 UTC (rev 2329)
@@ -0,0 +1,105 @@
+/*
+ * #%L
+ * JAXX :: Widgets
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2008 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package jaxx.runtime.swing.editor;
+
+import com.google.common.io.Files;
+import java.io.File;
+import javax.swing.JFileChooser;
+import javax.swing.filechooser.FileFilter;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class FileEditorHandler {
+
+ public static final String SEPARATOR_REGEX = "\\s*,\\s*";
+ protected FileEditor view;
+
+ public FileEditorHandler(FileEditor view) {
+ this.view = view;
+ }
+
+ public void openLocation() {
+
+ // use last selected file
+ File startFile = view.getSelectedFile();
+ if (startFile == null) {
+
+ // else filed start file
+ startFile = view.getStartFile();
+ }
+ if (startFile == null) {
+
+ // else start with user home
+ startFile = new File(System.getProperty("user.home"));
+ }
+ JFileChooser fc = new JFileChooser(startFile);
+
+ fc.setDialogTitle(view.getTitle());
+ fc.setAcceptAllFileFilterUsed(view.getAcceptAllFileFilterUsed());
+
+ String extsAsString = view.getExts();
+ if (extsAsString != null) {
+
+ // extentions can be separted by comma
+ String[] exts = extsAsString.split(SEPARATOR_REGEX);
+ String[] descs = view.getExtsDescription().split(SEPARATOR_REGEX);
+ for (int i = 0;i<exts.length;i++) {
+
+ fc.addChoosableFileFilter(new ExtentionFileFiler(exts[i], descs[i]));
+ }
+ }
+
+ // show dialog
+ fc.showOpenDialog(view);
+
+ // get selected to display in ui
+ File file = fc.getSelectedFile();
+ view.setSelectedFile(file);
+ }
+
+ public static class ExtentionFileFiler extends FileFilter {
+ protected String ext;
+ protected String desciption;
+
+ public ExtentionFileFiler(String ext, String desciption) {
+ this.ext = ext;
+ this.desciption = desciption;
+ }
+
+ @Override
+ public boolean accept(File file) {
+ if (file.isDirectory()) {
+ return true;
+ }
+ String fileExtension = Files.getFileExtension(file.getName());
+ return ext.equals(fileExtension);
+ }
+
+ @Override
+ public String getDescription() {
+ return desciption;
+ }
+ }
+}
Added: trunk/jaxx-widgets/src/main/resources/icons/action-open.png
===================================================================
(Binary files differ)
Property changes on: trunk/jaxx-widgets/src/main/resources/icons/action-open.png
___________________________________________________________________
Added: svn:executable
+ *
Added: svn:mime-type
+ application/octet-stream
1
0
14 Jun '12
Author: sletellier
Date: 2012-06-14 11:50:58 +0200 (Thu, 14 Jun 2012)
New Revision: 2328
Url: http://nuiton.org/repositories/revision/jaxx/2328
Log:
- fixes #2136 : Create component extend JXDatePicker to hide popup button and allow input time
- create ui in demo
- fixe translations
Added:
trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXDatePicker.jaxx
trunk/jaxx-widgets/src/main/java/org/
trunk/jaxx-widgets/src/main/java/org/jdesktop/
trunk/jaxx-widgets/src/main/java/org/jdesktop/swingx/
trunk/jaxx-widgets/src/main/java/org/jdesktop/swingx/plaf/
trunk/jaxx-widgets/src/main/java/org/jdesktop/swingx/plaf/basic/
trunk/jaxx-widgets/src/main/java/org/jdesktop/swingx/plaf/basic/ExtendedBasicDatePickerUI.java
Modified:
trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
Added: trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx (rev 0)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/component/jaxx/editor/DatePickerDemo.jaxx 2012-06-14 09:50:58 UTC (rev 2328)
@@ -0,0 +1,101 @@
+<!--
+ #%L
+ JAXX :: Demo
+ $Id:$
+ $HeadURL:$
+ %%
+ Copyright (C) 2008 - 2012 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
+<jaxx.demo.DemoPanel>
+
+ <import>
+ java.beans.PropertyChangeEvent
+ java.beans.PropertyChangeListener
+ java.text.SimpleDateFormat
+ java.util.Date
+ </import>
+
+ <String id='patternLayout' javaBean='"dd/MM/yyyy HH:mm:ss"'/>
+
+ <SimpleDateFormat id='dateFormat' constructorParams='patternLayout'/>
+
+ <Date id='date' javaBean='new Date()'/>
+
+ <script><![CDATA[
+ protected void $afterCompleteSetup() {
+
+ addPropertyChangeListener(PROPERTY_PATTERN_LAYOUT, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ dateFormat = new SimpleDateFormat(patternLayout);
+ datePicker.setPatternLayout(patternLayout);
+ resultView.setText(dateFormat.format(date));
+ }
+ });
+
+ addPropertyChangeListener(PROPERTY_DATE, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ resultView.setText(dateFormat.format(date));
+ }
+ });
+ }
+ ]]></script>
+
+ <Table fill='both'>
+ <row>
+ <cell columns='2'>
+ <JCheckBox id='showPopupButton'
+ text='jaxxdemo.datePickerEditor.showPopupButton'
+ selected='false'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text='jaxxdemo.datePickerEditor.patternLayout'/>
+ </cell>
+ <cell>
+ <JTextField id='patternLayoutField'
+ text='{patternLayout}'
+ onFocusLost='setPatternLayout(patternLayoutField.getText())'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text='jaxxdemo.i18neditor.datePicker'/>
+ </cell>
+ <cell>
+ <JAXXDatePicker id='datePicker'
+ date='{date}'
+ patternLayout='{patternLayout}'
+ showPopupButton='{showPopupButton.isSelected()}'
+ onActionPerformed='setDate(datePicker.getDate())'/>
+ </cell>
+ </row>
+ <row>
+ <cell>
+ <JLabel text='jaxxdemo.datePickerEditor.dateResult'/>
+ </cell>
+ <cell>
+ <JLabel id='resultView' text='{dateFormat.format(date)}'/>
+ </cell>
+ </row>
+ </Table>
+</jaxx.demo.DemoPanel>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java 2012-06-08 10:06:10 UTC (rev 2327)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/tree/DemoDataProvider.java 2012-06-14 09:50:58 UTC (rev 2328)
@@ -25,9 +25,14 @@
package jaxx.demo.tree;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
import jaxx.demo.component.jaxx.BoxedDecoratorDemo;
import jaxx.demo.component.jaxx.StatusMessagePanelDemo;
import jaxx.demo.component.jaxx.editor.ComboEditorDemo;
+import jaxx.demo.component.jaxx.editor.DatePickerDemo;
import jaxx.demo.component.jaxx.editor.I18nEditorDemo;
import jaxx.demo.component.jaxx.editor.NumberEditorDemo;
import jaxx.demo.component.jaxx.editor.TimeEditorDemo;
@@ -61,11 +66,6 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
import static org.nuiton.i18n.I18n.n_;
/**
@@ -152,7 +152,8 @@
TimeEditorDemo.class,
NumberEditorDemo.class,
ComboEditorDemo.class,
- I18nEditorDemo.class
+ I18nEditorDemo.class,
+ DatePickerDemo.class
);
addMapping(n_("jaxxdemo.feature"),
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-08 10:06:10 UTC (rev 2327)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-14 09:50:58 UTC (rev 2328)
@@ -186,8 +186,11 @@
jaxxdemo.config.ui.fontSize=default font size to use in sources
jaxxdemo.config.ui.fullscreen=To change the screen mode (true for full screen)
jaxxdemo.config.ui.locale=Language used in application
-jaxxdemo.config.ui.logLevel=
-jaxxdemo.config.ui.logPatternLayout=
+jaxxdemo.config.ui.logLevel=Log level
+jaxxdemo.config.ui.logPatternLayout=Log pattern
+jaxxdemo.datePickerEditor.dateResult=Result display
+jaxxdemo.datePickerEditor.patternLayout=Date pattern
+jaxxdemo.datePickerEditor.showPopupButton=Display popup button
jaxxdemo.feature=Features
jaxxdemo.feature.databinding=Data Binding
jaxxdemo.feature.nav=Jaxx nav API
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-08 10:06:10 UTC (rev 2327)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-14 09:50:58 UTC (rev 2328)
@@ -186,8 +186,11 @@
jaxxdemo.config.ui.fontSize=La taille de la police à utiliser pour visualiser dans les sources
jaxxdemo.config.ui.fullscreen=Pour afficher l'aplication en mode pleine écran
jaxxdemo.config.ui.locale=La langue utilisée par l'application
-jaxxdemo.config.ui.logLevel=
-jaxxdemo.config.ui.logPatternLayout=
+jaxxdemo.config.ui.logLevel=Level de log
+jaxxdemo.config.ui.logPatternLayout=Pattern des log
+jaxxdemo.datePickerEditor.dateResult=Affichage du résultat
+jaxxdemo.datePickerEditor.patternLayout=Pattern de date
+jaxxdemo.datePickerEditor.showPopupButton=Afficher le boutton pour ouvrir la popup
jaxxdemo.feature=Fonctionnalités
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-08 10:06:10 UTC (rev 2327)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-14 09:50:58 UTC (rev 2328)
@@ -186,8 +186,11 @@
jaxxdemo.config.ui.fontSize=La taille de la police à utiliser pour visualiser dans les sources
jaxxdemo.config.ui.fullscreen=Pour afficher l'aplication en mode pleine écran
jaxxdemo.config.ui.locale=La langue utilisée par l'application
-jaxxdemo.config.ui.logLevel=
-jaxxdemo.config.ui.logPatternLayout=
+jaxxdemo.config.ui.logLevel=Level de log
+jaxxdemo.config.ui.logPatternLayout=Pattern des log
+jaxxdemo.datePickerEditor.dateResult=Affichage du résultat
+jaxxdemo.datePickerEditor.patternLayout=Pattern de date
+jaxxdemo.datePickerEditor.showPopupButton=Afficher le boutton pour ouvrir la popup
jaxxdemo.feature=Fonctionnalités
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
Added: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXDatePicker.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXDatePicker.jaxx (rev 0)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/JAXXDatePicker.jaxx 2012-06-14 09:50:58 UTC (rev 2328)
@@ -0,0 +1,61 @@
+<!--
+ #%L
+ JAXX :: Widgets
+ $Id:$
+ $HeadURL:$
+ %%
+ Copyright (C) 2008 - 2012 CodeLutin
+ %%
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU Lesser General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Lesser Public License for more details.
+
+ You should have received a copy of the GNU General Lesser Public
+ License along with this program. If not, see
+ <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ #L%
+ -->
+<org.jdesktop.swingx.JXDatePicker>
+
+ <import>
+ java.beans.PropertyChangeEvent
+ java.beans.PropertyChangeListener
+ org.jdesktop.swingx.plaf.basic.ExtendedBasicDatePickerUI
+ java.text.SimpleDateFormat
+ </import>
+
+ <Boolean id='showPopupButton' javaBean='Boolean.TRUE'/>
+
+ <String id='patternLayout' javaBean='"dd/MM/yyyy"'/>
+
+ <ExtendedBasicDatePickerUI id='extendedUI' showPopupButton='{showPopupButton}'/>
+
+ <script><![CDATA[
+ protected void $afterCompleteSetup() {
+
+ setUI(extendedUI);
+
+ addPropertyChangeListener(PROPERTY_SHOW_POPUP_BUTTON, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ extendedUI.setShowPopupButton((Boolean) evt.getNewValue());
+ }
+ });
+
+ addPropertyChangeListener(PROPERTY_PATTERN_LAYOUT, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ setFormats(new SimpleDateFormat((String) evt.getNewValue()));
+ }
+ });
+ }
+ ]]></script>
+</org.jdesktop.swingx.JXDatePicker>
\ No newline at end of file
Added: trunk/jaxx-widgets/src/main/java/org/jdesktop/swingx/plaf/basic/ExtendedBasicDatePickerUI.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/org/jdesktop/swingx/plaf/basic/ExtendedBasicDatePickerUI.java (rev 0)
+++ trunk/jaxx-widgets/src/main/java/org/jdesktop/swingx/plaf/basic/ExtendedBasicDatePickerUI.java 2012-06-14 09:50:58 UTC (rev 2328)
@@ -0,0 +1,91 @@
+/*
+ * #%L
+ * JAXX :: Widgets
+ * $Id:$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2008 - 2012 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.jdesktop.swingx.plaf.basic;
+
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
+import java.beans.PropertyChangeSupport;
+import java.beans.PropertyVetoException;
+import java.util.Date;
+import javax.swing.JButton;
+
+/**
+ * @author sletellier <letellier(a)codelutin.com>
+ */
+public class ExtendedBasicDatePickerUI extends BasicDatePickerUI {
+
+ public static final String PROPERTY_SHOW_POPUP_BUTTON = "showPopupButton";
+
+ protected JButton popupButton;
+ protected PropertyChangeSupport p;
+ protected boolean showPopupButton;
+
+ public ExtendedBasicDatePickerUI() {
+ p = new PropertyChangeSupport(this);
+ p.addPropertyChangeListener(PROPERTY_SHOW_POPUP_BUTTON, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+
+ // dont do this on init
+ if (datePicker != null) {
+ installComponents();
+ installListeners();
+ }
+ }
+ });
+ }
+
+ public boolean isShowPopupButton() {
+ return showPopupButton;
+ }
+
+ public void setShowPopupButton(boolean showPopupButton) {
+ boolean oldValue = isShowPopupButton();
+ this.showPopupButton = showPopupButton;
+ p.firePropertyChange("showPopupButton", oldValue, showPopupButton);
+ }
+
+ @Override
+ protected JButton createPopupButton() {
+
+ if (datePicker != null && popupButton != null) {
+ datePicker.remove(popupButton);
+ }
+ if (isShowPopupButton()) {
+ popupButton = super.createPopupButton();
+ return popupButton;
+ }
+ return null;
+ }
+
+ @Override
+ public Date getSelectableDate(Date date) throws PropertyVetoException {
+ if (date == null) {
+ // one place to interrupt the update spiral
+ throw new PropertyVetoException("date not selectable", null);
+ }
+ return date;
+ }
+}
1
0
Author: sletellier
Date: 2012-06-08 12:06:10 +0200 (Fri, 08 Jun 2012)
New Revision: 2327
Url: http://nuiton.org/repositories/revision/jaxx/2327
Log:
Revert log4j scope to runtime
Modified:
trunk/jaxx-demo/pom.xml
Modified: trunk/jaxx-demo/pom.xml
===================================================================
--- trunk/jaxx-demo/pom.xml 2012-06-08 09:52:04 UTC (rev 2326)
+++ trunk/jaxx-demo/pom.xml 2012-06-08 10:06:10 UTC (rev 2327)
@@ -132,6 +132,7 @@
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
+ <scope>runtime</scope>
</dependency>
</dependencies>
1
0
r2326 - in trunk: jaxx-demo jaxx-demo/src/main/java/jaxx/demo jaxx-demo/src/main/resources jaxx-demo/src/main/resources/i18n jaxx-demo/src/main/resources/icons jaxx-widgets/src/main/java/jaxx/runtime/swing/log
by sletellier@users.nuiton.org 08 Jun '12
by sletellier@users.nuiton.org 08 Jun '12
08 Jun '12
Author: sletellier
Date: 2012-06-08 11:52:04 +0200 (Fri, 08 Jun 2012)
New Revision: 2326
Url: http://nuiton.org/repositories/revision/jaxx/2326
Log:
refs #2124 Add ui to display log from log4j appender
Use applicationConfig to specify appender level and pattern to use
Add init method to initialize JAXXLog4jAppender
Added:
trunk/jaxx-demo/src/main/resources/icons/action-reload-log.png
Modified:
trunk/jaxx-demo/pom.xml
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java
trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java
trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
trunk/jaxx-demo/src/main/resources/log4j.properties
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jUI.jaxx
Modified: trunk/jaxx-demo/pom.xml
===================================================================
--- trunk/jaxx-demo/pom.xml 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/pom.xml 2012-06-08 09:52:04 UTC (rev 2326)
@@ -132,7 +132,6 @@
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
- <scope>runtime</scope>
</dependency>
</dependencies>
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoConfig.java 2012-06-08 09:52:04 UTC (rev 2326)
@@ -25,6 +25,11 @@
package jaxx.demo;
+import java.beans.PropertyChangeListener;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.Locale;
+import java.util.Properties;
import jaxx.demo.feature.nav.NavDemo;
import jaxx.runtime.JAXXUtil;
import org.apache.commons.logging.Log;
@@ -33,12 +38,6 @@
import org.nuiton.util.Version;
import org.nuiton.util.VersionUtil;
-import java.beans.PropertyChangeListener;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.Locale;
-import java.util.Properties;
-
import static org.nuiton.i18n.I18n._;
/**
@@ -66,6 +65,10 @@
public static final String PROPERTY_FONT_SIZE = "fontSize";
+ public static final String PROPERTY_LOG_LEVEL = "logLevel";
+
+ public static final String PROPERTY_LOG_PATTERN_LAYOUT = "logPatternLayout";
+
public DemoConfig() {
setConfigFileName(Option.CONFIG_FILE.defaultValue);
@@ -135,6 +138,16 @@
return result;
}
+ public String getLogLevel() {
+ String level = getOption(Option.LOG_LEVEL.key);
+ return level;
+ }
+
+ public String getLogPatternLayout() {
+ String result = getOption(Option.LOG_PATTERN_LAYOUT.key);
+ return result;
+ }
+
public void setFullscreen(boolean fullscreen) {
Object oldValue = null;
setOption(Option.FULL_SCREEN.key, fullscreen + "");
@@ -155,6 +168,18 @@
firePropertyChange(PROPERTY_FONT_SIZE, oldValue, newFontSize);
}
+ public void setLogLevel(String logLevel) {
+ String oldValue = getLogLevel();
+ setOption(Option.LOG_LEVEL.key, logLevel);
+ firePropertyChange(PROPERTY_LOG_LEVEL, oldValue, logLevel);
+ }
+
+ public void setLogPatternLayout(String logPatternLayout) {
+ String oldValue = getLogPatternLayout();
+ setOption(Option.LOG_PATTERN_LAYOUT.key, logPatternLayout);
+ firePropertyChange(PROPERTY_LOG_PATTERN_LAYOUT, oldValue, logPatternLayout);
+ }
+
/**
* Save configuration, in user home directory using the
* {@link #getConfigFileName}. Default, env and commande line note saved
@@ -225,6 +250,20 @@
Float.class,
false,
false),
+ LOG_LEVEL(
+ "ui." + PROPERTY_LOG_LEVEL,
+ _("jaxxdemo.config.ui.logLevel"),
+ "INFO",
+ String.class,
+ false,
+ false),
+ LOG_PATTERN_LAYOUT(
+ "ui." + PROPERTY_LOG_PATTERN_LAYOUT,
+ _("jaxxdemo.config.ui.logPatternLayout"),
+ "%5p [%t] (%F:%L) %M - %m%n",
+ String.class,
+ false,
+ false),
DEMO_PATH(
"ui.demo.path",
_("jaxxdemo.config.ui.demo.path"),
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/DemoUIHandler.java 2012-06-08 09:52:04 UTC (rev 2326)
@@ -390,6 +390,22 @@
}
};
+ final Runnable reloadLogAppenderCallback = new Runnable() {
+
+ @Override
+ public void run() {
+ if (log.isInfoEnabled()) {
+ log.info("will reload log appender");
+ }
+ DefaultApplicationContext context = RunDemo.get();
+ DemoUI ui = getUI(context);
+ DemoConfig config = ui.getConfig();
+
+ // init jaxx logger
+ JAXXLog4jUI.init(config.getLogLevel(), config.getLogPatternLayout());
+ }
+ };
+
public void showConfig(JAXXContext context) {
DemoUI ui = getUI(context);
DemoConfig config = ui.getConfig();
@@ -406,6 +422,11 @@
SwingUtil.createActionIcon("reload-application"),
reloadApplicationCallback);
+ helper.registerCallBack("log",
+ n_("demo.action.reload.logAppender"),
+ SwingUtil.createActionIcon("reload-log"),
+ reloadLogAppenderCallback);
+
// categorie repertoires
helper.addCategory(n_("jaxxdemo.config.category.directories"),
@@ -429,6 +450,14 @@
helper.setOptionPropertyName(DemoConfig.PROPERTY_LOCALE);
helper.setOptionCallBack("ui");
+ helper.addOption(DemoConfig.Option.LOG_LEVEL);
+ helper.setOptionPropertyName(DemoConfig.PROPERTY_LOG_LEVEL);
+ helper.setOptionCallBack("log");
+
+ helper.addOption(DemoConfig.Option.LOG_PATTERN_LAYOUT);
+ helper.setOptionPropertyName(DemoConfig.PROPERTY_LOG_PATTERN_LAYOUT);
+ helper.setOptionCallBack("log");
+
helper.buildUI(context, "jaxxdemo.config.category.other");
helper.displayUI(ui, false);
@@ -448,7 +477,7 @@
public void showLogs(DemoUI ui) {
- JAXXLog4jUI log4jUI = new JAXXLog4jUI("jaxxDemoAppender");
+ JAXXLog4jUI log4jUI = new JAXXLog4jUI();
String title = _("jaxxdemo.title.showLog");
log4jUI.setTitle(title);
log4jUI.showInDialog(ui, false);
Modified: trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java
===================================================================
--- trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/src/main/java/jaxx/demo/RunDemo.java 2012-06-08 09:52:04 UTC (rev 2326)
@@ -25,22 +25,22 @@
package jaxx.demo;
+import java.util.Arrays;
+import java.util.Date;
import jaxx.demo.entities.DemoDecoratorProvider;
import jaxx.demo.tree.DemoDataProvider;
import jaxx.demo.tree.DemoTreeHelper;
import jaxx.runtime.SwingUtil;
import jaxx.runtime.context.DefaultApplicationContext;
-import org.nuiton.util.decorator.DecoratorProvider;
import jaxx.runtime.swing.ErrorDialogUI;
+import jaxx.runtime.swing.log.JAXXLog4jUI;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.i18n.I18n;
import org.nuiton.i18n.init.DefaultI18nInitializer;
import org.nuiton.util.StringUtil;
+import org.nuiton.util.decorator.DecoratorProvider;
-import java.util.Arrays;
-import java.util.Date;
-
import static org.nuiton.i18n.I18n._;
/** @author tchemit <chemit(a)codelutin.com> */
@@ -103,8 +103,10 @@
log.info(_("jaxxdemo.message.config.loaded", config.getVersion()));
+ // init jaxx logger
+ JAXXLog4jUI.init(config.getLogLevel(), config.getLogPatternLayout());
+
// prepare ui look&feel and load ui properties
-
try {
SwingUtil.initNimbusLoookAndFeel();
} catch (Exception e) {
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_en_GB.properties 2012-06-08 09:52:04 UTC (rev 2326)
@@ -105,6 +105,7 @@
close2=Disable 2
close3=Disable 3
demo.action.reload.application=Reload application
+demo.action.reload.logAppender=
demo.action.reload.ui=Reload UI
edit=Edit
edit2=Edit 2
@@ -185,6 +186,8 @@
jaxxdemo.config.ui.fontSize=default font size to use in sources
jaxxdemo.config.ui.fullscreen=To change the screen mode (true for full screen)
jaxxdemo.config.ui.locale=Language used in application
+jaxxdemo.config.ui.logLevel=
+jaxxdemo.config.ui.logPatternLayout=
jaxxdemo.feature=Features
jaxxdemo.feature.databinding=Data Binding
jaxxdemo.feature.nav=Jaxx nav API
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_es_ES.properties 2012-06-08 09:52:04 UTC (rev 2326)
@@ -105,6 +105,7 @@
close2=Fermer 2
close3=Fermer 3
demo.action.reload.application=Redemarrer l'application
+demo.action.reload.logAppender=
demo.action.reload.ui=Recharger l'interface graphique
edit=Editer
edit2=Editer 2
@@ -185,6 +186,8 @@
jaxxdemo.config.ui.fontSize=La taille de la police à utiliser pour visualiser dans les sources
jaxxdemo.config.ui.fullscreen=Pour afficher l'aplication en mode pleine écran
jaxxdemo.config.ui.locale=La langue utilisée par l'application
+jaxxdemo.config.ui.logLevel=
+jaxxdemo.config.ui.logPatternLayout=
jaxxdemo.feature=Fonctionnalités
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
Modified: trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/src/main/resources/i18n/jaxx-demo_fr_FR.properties 2012-06-08 09:52:04 UTC (rev 2326)
@@ -105,6 +105,7 @@
close2=Fermer 2
close3=Fermer 3
demo.action.reload.application=Redemarrer l'application
+demo.action.reload.logAppender=
demo.action.reload.ui=Recharger l'interface graphique
edit=Editer
edit2=Editer 2
@@ -185,6 +186,8 @@
jaxxdemo.config.ui.fontSize=La taille de la police à utiliser pour visualiser dans les sources
jaxxdemo.config.ui.fullscreen=Pour afficher l'aplication en mode pleine écran
jaxxdemo.config.ui.locale=La langue utilisée par l'application
+jaxxdemo.config.ui.logLevel=
+jaxxdemo.config.ui.logPatternLayout=
jaxxdemo.feature=Fonctionnalités
jaxxdemo.feature.databinding=Data binding
jaxxdemo.feature.nav=API JAXX pour les arbres
Added: trunk/jaxx-demo/src/main/resources/icons/action-reload-log.png
===================================================================
(Binary files differ)
Property changes on: trunk/jaxx-demo/src/main/resources/icons/action-reload-log.png
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/jaxx-demo/src/main/resources/log4j.properties
===================================================================
--- trunk/jaxx-demo/src/main/resources/log4j.properties 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-demo/src/main/resources/log4j.properties 2012-06-08 09:52:04 UTC (rev 2326)
@@ -29,11 +29,6 @@
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
-# JAXX output
-log4j.appender.jaxxDemoAppender=jaxx.runtime.swing.log.JAXXLog4jAppender
-log4j.appender.jaxxDemoAppender.layout=org.apache.log4j.PatternLayout
-log4j.appender.jaxxDemoAppender.layout.ConversionPattern=%5p [%t] (%F:%L) %M - %m%n
-
log4j.logger.jaxx=INFO
#log4j.logger.jaxx.demo=INFO
log4j.logger.jaxx.demo.tree=DEBUG
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jHandler.java 2012-06-08 09:52:04 UTC (rev 2326)
@@ -39,7 +39,9 @@
import jaxx.runtime.SwingUtil;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.log4j.Level;
import org.apache.log4j.Logger;
+import org.apache.log4j.PatternLayout;
/**
* @author sletellier <letellier(a)codelutin.com>
@@ -50,10 +52,36 @@
protected JAXXLog4jUI ui;
+ protected static JAXXLog4jAppender appender;
+
public JAXXLog4jHandler(JAXXLog4jUI ui) {
this.ui = ui;
}
+ /**
+ * Init {@link JAXXLog4jAppender} with level INFO and pattern : %5p [%t] (%F:%L) %M - %m%n
+ */
+ public static void init() {
+ init("INFO", "%5p [%t] (%F:%L) %M - %m%n");
+ }
+
+ /**
+ * Init {@link JAXXLog4jAppender} with specific {@link Level} and {@link PatternLayout}
+ *
+ * @param level specify log4j {@link Level}
+ * @param patternLayout log4j {@link PatternLayout} to display
+ */
+ public static void init(String level, String patternLayout) {
+ Logger logger = Logger.getRootLogger();
+
+ if (appender == null) {
+ appender = new JAXXLog4jAppender();
+ logger.addAppender(appender);
+ }
+ appender.setLevel(Level.toLevel(level));
+ appender.setLayout(new PatternLayout(patternLayout));
+ }
+
final protected Action closeAction = new AbstractAction("close") {
private static final long serialVersionUID = 1L;
@@ -68,16 +96,8 @@
}
};
- public JAXXLog4jAppender getAppender(String appenderName) {
-
- Logger logger = Logger.getRootLogger();
- try {
- JAXXLog4jAppender appender = (JAXXLog4jAppender) logger.getAppender(appenderName);
- return appender;
- } catch (ClassCastException eee) {
- log.error("Appender '" + appenderName + "' must be an jaxx.runtime.swing.log.JAXXLog4jAppender", eee);
- throw eee;
- }
+ public JAXXLog4jAppender getAppender() {
+ return appender;
}
public void showInDialog(Frame ui, boolean undecorated) {
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jUI.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jUI.jaxx 2012-06-06 17:10:47 UTC (rev 2325)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/log/JAXXLog4jUI.jaxx 2012-06-08 09:52:04 UTC (rev 2326)
@@ -30,12 +30,24 @@
</import>
<script><![CDATA[
- protected String appenderName;
- public JAXXLog4jUI(String appenderName) {
- this.appenderName = appenderName;
+ /**
+ * Init {@link JAXXLog4jAppender} with level INFO and pattern : %5p [%t] (%F:%L) %M - %m%n
+ */
+ public static void init() {
+ JAXXLog4jHandler.init();
}
+ /**
+ * Init {@link JAXXLog4jAppender} with specific {@link Level} and {@link PatternLayout}
+ *
+ * @param level specify log4j {@link Level}
+ * @param patternLayout log4j {@link PatternLayout} to display
+ */
+ public static void init(String level, String patternLayout) {
+ JAXXLog4jHandler.init(level, patternLayout);
+ }
+
public void showInDialog(Frame ui, boolean undecorated) {
handler.showInDialog(ui, undecorated);
}
@@ -45,11 +57,11 @@
<JAXXLog4jHandler id='handler' constructorParams='this'/>
- <JAXXLog4jAppender id='model' initializer='getHandler().getAppender(appenderName)'/>
+ <JAXXLog4jAppender id='model' initializer='getHandler().getAppender()'/>
<JScrollPane constraints='BorderLayout.CENTER'>
- <JTextArea id='logArea'
- text='{model.getLogs()}'/>
+ <JEditorPane id='logArea'
+ text='{model.getLogs()}'/>
</JScrollPane>
<Table constraints='BorderLayout.SOUTH'>
1
0
r2325 - trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing
by sletellier@users.nuiton.org 06 Jun '12
by sletellier@users.nuiton.org 06 Jun '12
06 Jun '12
Author: sletellier
Date: 2012-06-06 19:10:47 +0200 (Wed, 06 Jun 2012)
New Revision: 2325
Url: http://nuiton.org/repositories/revision/jaxx/2325
Log:
fixes #2127 Allow to specify date pattern to display for ClockWidget
Modified:
trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx
Modified: trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx
===================================================================
--- trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx 2012-06-01 16:15:02 UTC (rev 2324)
+++ trunk/jaxx-widgets/src/main/java/jaxx/runtime/swing/ClockWidget.jaxx 2012-06-06 17:10:47 UTC (rev 2325)
@@ -23,20 +23,38 @@
#L%
-->
-<JLabel implements='java.awt.event.ActionListener'
+<JLabel implements='java.awt.event.ActionListener'
foreground='{Color.BLACK}'
background='{Color.WHITE}'>
-<javax.swing.Timer id='timer' constructorParams='60000,this' />
+ <Integer id='delay' javaBean='60000'/>
+ <String id='pattern' javaBean='"HH:mm"'/>
+
+ <javax.swing.Timer id='timer' delay='{delay}' constructorParams='delay,this'/>
+
<import>
java.awt.Color
java.awt.event.ActionEvent
+ java.text.SimpleDateFormat
java.text.DateFormat
java.util.Date
+ java.beans.PropertyChangeEvent
+ java.beans.PropertyChangeListener
</import>
- <script><![CDATA[
+ <script><![CDATA[
+protected void $afterCompleteSetup() {
+
+ addPropertyChangeListener(PROPERTY_DELAY, new PropertyChangeListener() {
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ timer = new Timer((Integer) evt.getNewValue(), ClockWidget.this);
+ }
+ });
+}
+
@Override
public void actionPerformed(ActionEvent evt) {
update();
@@ -57,8 +75,9 @@
}
protected void update() {
- setText(DateFormat.getTimeInstance(3).format(new Date()));
+ DateFormat format = new SimpleDateFormat(pattern);
+ setText(format.format(new Date()));
}
]]>
- </script>
+ </script>
</JLabel>
1
0