From gitlab@mg.gitlab.com Sat Aug 19 09:05:32 2017 From: Tony CHEMIT To: observe-commits@list.forge.codelutin.com Subject: [Observe-commits] [Git][ultreiaio/ird-observe][develop] improve fob reference manager ui Date: Sat, 19 Aug 2017 07:05:02 +0000 Message-ID: <5997e31eb9796_647c3fe7621fbc04892a2@sidekiq-asap03.mail> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============8951796276215394844==" --===============8951796276215394844== Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 6f074224 by Tony CHEMIT at 2017-08-19T09:04:52+02:00 improve fob reference manager ui - - - - - 3 changed files: - client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectReferen= cesUI.jaxx - client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectReferen= cesUI.jcss - client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectReferen= cesUIHandler.java Changes: =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectReference= sUI.jaxx =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectRef= erencesUI.jaxx +++ b/client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectRef= erencesUI.jaxx @@ -31,32 +31,34 @@ =20 =20 - - =20 - - - - - - - - - - + + =20 - - - - - - - - -
-
+ + + + + + + + + + + + =20 + + + + + + + + +
+
+ =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectReference= sUI.jcss =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectRef= erencesUI.jcss +++ b/client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectRef= erencesUI.jcss @@ -19,9 +19,6 @@ * . * #L% */ -#references { - selectedItem: {model.getReference()}; -} =20 #noReferenceSelected { visible: true; =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectReference= sUIHandler.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D --- a/client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectRef= erencesUIHandler.java +++ b/client/src/main/java/fr/ird/observe/client/ui/dcprefs/FloatingObjectRef= erencesUIHandler.java @@ -23,9 +23,9 @@ package fr.ird.observe.client.ui.dcprefs; */ =20 import fr.ird.observe.client.ObserveSwingApplicationContext; -import fr.ird.observe.client.ui.ObserveKeyStrokes; import fr.ird.observe.client.ui.actions.UIActionSupport; import fr.ird.observe.client.ui.content.ObserveActionMap; +import fr.ird.observe.client.ui.util.UIHelper; import fr.ird.observe.services.dto.FloatingObjectReference; import java.awt.BorderLayout; import java.util.LinkedList; @@ -33,12 +33,11 @@ import java.util.List; import java.util.Objects; import java.util.Set; import javax.swing.AbstractButton; -import javax.swing.JComponent; +import javax.swing.DefaultListModel; import javax.swing.SwingUtilities; import org.nuiton.decorator.Decorator; -import org.nuiton.decorator.JXPathDecorator; import org.nuiton.jaxx.runtime.spi.UIHandler; -import org.nuiton.jaxx.widgets.select.BeanComboBox; +import org.nuiton.jaxx.runtime.swing.renderer.DecoratorListCellRenderer; =20 =20 import static fr.ird.observe.client.ui.content.ContentUIInitializer.OBSERVE_= ACTION; @@ -74,35 +73,50 @@ public class FloatingObjectReferencesUIHandler implements= UIHandler remoteDecorator =3D ObserveSwingA= pplicationContext.get().getDecoratorService().getDecoratorByType(FloatingObje= ctReference.class); - ui.getReferences().init((JXPathDecorator) r= emoteDecorator, ui.getModel().getReferences()); + Decorator decorator =3D ObserveSwingApplica= tionContext.get().getDecoratorService().getDecoratorByType(FloatingObjectRefe= rence.class); + ui.getReferences().setCellRenderer(new DecoratorListCellRenderer<>(d= ecorator)); =20 - ui.getModel().addPropertyChangeListener(FloatingObjectReferencesUIMo= del.PROPERTY_REFERENCES, evt -> ui.getReferences().setData((List) evt.getNewValue())); + DefaultListModel listModel =3D new DefaultL= istModel<>(); + ui.getModel().getReferences().forEach(listModel::addElement); + ui.getReferences().setModel(listModel); + ui.getReferences().addListSelectionListener(evt -> { + if (ui.getReferences().isSelectionEmpty()) { =20 - ui.getReferences().addPropertyChangeListener(BeanComboBox.PROPERTY_S= ELECTED_ITEM, evt -> { + ui.getModel().setReference(null); + } else { + ui.getModel().setReference(ui.getReferences().getSelectedVal= ue()); + } + }); + + ui.getModel().addPropertyChangeListener(FloatingObjectReferencesUIMo= del.PROPERTY_REFERENCES, evt -> { + List newValue =3D (List) evt.getNewValue(); + + listModel.clear(); + for (Object reference : newValue) { + listModel.addElement((FloatingObjectReference) reference); + } + }); + + ui.getModel().addPropertyChangeListener(FloatingObjectReferencesUIMo= del.PROPERTY_REFERENCE, evt -> { =20 FloatingObjectReference oldValue =3D (FloatingObjectReference) e= vt.getOldValue(); - FloatingObjectReference newValue =3D (FloatingObjectReference) e= vt.getNewValue(); - ui.getModel().setReference(newValue); =20 if (ui.getModel().getReference() =3D=3D null) { - ui.getReferencePanel().remove(ui.getReferenceForm()); - ui.getReferencePanel().add(ui.getNoReferenceSelected(), Bord= erLayout.CENTER); + ui.getReferenceContentPanel().remove(ui.getReferenceForm()); + ui.getReferenceContentPanel().add(ui.getNoReferenceSelected(= ), BorderLayout.CENTER); } else { if (oldValue =3D=3D null) { ui.getReferenceForm().setVisible(true); - ui.getReferencePanel().remove(ui.getNoReferenceSelected(= )); - ui.getReferencePanel().add(ui.getReferenceForm(), Border= Layout.CENTER); + ui.getReferenceContentPanel().remove(ui.getNoReferenceSe= lected()); + ui.getReferenceContentPanel().add(ui.getReferenceForm(),= BorderLayout.CENTER); + UIHelper.askFocus(ui.getReferenceName()); } ui.getModel().setModified(false); } SwingUtilities.invokeLater(ui::repaint); }); =20 - ui.getReferences().getCombobox().getInputMap(JComponent.WHEN_ANCESTO= R_OF_FOCUSED_COMPONENT) - .put(ObserveKeyStrokes.KEY_STROKE_DELETE, "none"); - - ObserveKeyStrokes.addKeyStrokeFromMnemonic(ui); + UIHelper.askFocus(ui.getQuitAction()); } =20 protected void init(ObserveActionMap actionMap, AbstractButton editor) { @@ -112,7 +126,6 @@ public class FloatingObjectReferencesUIHandler implements= UIHandler