|
From: <bma...@us...> - 2011-06-15 13:53:34
|
Revision: 6296
http://fudaa.svn.sourceforge.net/fudaa/?rev=6296&view=rev
Author: bmarchan
Date: 2011-06-15 13:53:25 +0000 (Wed, 15 Jun 2011)
Log Message:
-----------
Pr?\195?\169f?\195?\169rences : Composants enfichables dans un panneau de pr?\195?\169f?\195?\169rence g?\195?\169n?\195?\169rique.
Modified Paths:
--------------
trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesPanel.java
Added Paths:
-----------
trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesComponent.java
trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuContainerPreferencesPanel.java
Added: trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesComponent.java
===================================================================
--- trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesComponent.java (rev 0)
+++ trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesComponent.java 2011-06-15 13:53:25 UTC (rev 6296)
@@ -0,0 +1,101 @@
+package com.memoire.bu;
+
+import com.memoire.fu.FuPreferences;
+import javax.swing.JPanel;
+
+/**
+ * Un composant enfichable dans un panneau de pr\xE9f\xE9rences. Le composant est
+ * ajout\xE9 \xE0 la suite des autres dans le panneau, verticalement.
+ *
+ * @author mar...@de...
+ */
+public abstract class BuAbstractPreferencesComponent extends JPanel {
+ BuContainerPreferencesPanel container_;
+ protected FuPreferences options_;
+
+ boolean isSavabled_=true;
+ boolean dirty_;
+
+ void setContainer(BuContainerPreferencesPanel _container) {
+ container_=_container;
+ }
+
+ /**
+ * @return true : Les pr\xE9f\xE9rences peuvent \xEAtre ecrites. false sinon.
+ */
+ public boolean isPreferencesValidable() { return false; }
+
+ /**
+ * Enregistrement des modifications apportees dans ce panel.
+ */
+ public void validatePreferences() {
+ updateProperties();
+ options_.writeIniFile();
+ setModified(false);
+ }
+
+ /**
+ * @return true : Les pr\xE9f\xE9rences peuvent \xEAtre appliqu\xE9es sans sortie du dialogue.
+ * false sinon.
+ */
+ public boolean isPreferencesApplyable() { return false; }
+
+ /**
+ * A surcharger si les pr\xE9f\xE9rences peuvent \xEAtre appliqu\xE9es.
+ */
+ public void applyPreferences() { }
+
+ /**
+ * @return true : Les pr\xE9f\xE9rences peuvent \xEAtre annul\xE9es.
+ * false sinon.
+ */
+ public boolean isPreferencesCancelable() { return false; }
+
+ /**
+ * Annuler les modifications (relit les preferences).
+ */
+ public void cancelPreferences() {
+ options_.readIniFile();
+ updateComponent();
+ setModified(false);
+ }
+
+ /**
+ * Le titre du composant
+ */
+ public abstract String getTitle();
+
+ /**
+ * Met a jour le composant \xE0 partir des propri\xE9t\xE9s
+ */
+ protected abstract void updateComponent();
+
+ /**
+ * Met a jour les propri\xE9t\xE9s \xE0 partir du composant.
+ */
+ protected abstract void updateProperties();
+
+ /**
+ * @return True : Le composant est modifi\xE9.
+ */
+ protected boolean isModified() {
+ return dirty_;
+ }
+
+ protected void setModified(boolean _b) {
+ dirty_=_b;
+ container_.firePropertyChange();
+ }
+
+ /**
+ * @return True : Le composant est sauvable, autrement dit les valeurs donn\xE9es sont correctes.
+ */
+ protected boolean isSavabled() {
+ return isSavabled_;
+ }
+
+ protected void setSavabled(boolean _b) {
+ isSavabled_=_b;
+ container_.firePropertyChange();
+ }
+}
Property changes on: trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesComponent.java
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
Modified: trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesPanel.java
===================================================================
--- trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesPanel.java 2011-06-15 13:50:23 UTC (rev 6295)
+++ trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuAbstractPreferencesPanel.java 2011-06-15 13:53:25 UTC (rev 6296)
@@ -53,13 +53,36 @@
}
}
+ /**
+ * @return true : Les pr\xE9f\xE9rences peuvent \xEAtre ecrites. false sinon.
+ */
public boolean isPreferencesValidable() { return false; }
+
+ /**
+ * A surcharger si les pr\xE9f\xE9rences peuvent \xEAtre ecrites.
+ */
public void validatePreferences() { }
+ /**
+ * @return true : Les pr\xE9f\xE9rences peuvent \xEAtre appliqu\xE9es sans sortie du dialogue.
+ * false sinon.
+ */
public boolean isPreferencesApplyable() { return false; }
+
+ /**
+ * A surcharger si les pr\xE9f\xE9rences peuvent \xEAtre appliqu\xE9es.
+ */
public void applyPreferences() { }
+ /**
+ * @return true : Les pr\xE9f\xE9rences peuvent \xEAtre annul\xE9es.
+ * false sinon.
+ */
public boolean isPreferencesCancelable() { return false; }
+
+ /**
+ * A surcharger si les pr\xE9f\xE9rences peuvent \xEAtre annul\xE9es.
+ */
public void cancelPreferences() { }
public void keyPressed (KeyEvent _evt) { }
Added: trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuContainerPreferencesPanel.java
===================================================================
--- trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuContainerPreferencesPanel.java (rev 0)
+++ trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuContainerPreferencesPanel.java 2011-06-15 13:53:25 UTC (rev 6296)
@@ -0,0 +1,131 @@
+/*
+ * To change this template, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package com.memoire.bu;
+
+import java.awt.BorderLayout;
+import javax.swing.JPanel;
+import javax.swing.border.CompoundBorder;
+import javax.swing.border.EmptyBorder;
+import javax.swing.border.TitledBorder;
+
+/**
+ * Un panneau contenant des composants pr\xE9f\xE9rences. Les composants sont globalement
+ * enregistrables, s'il n'y a pas d'erreur dessus (ils sont dans ce cas "savabled").
+ *
+ * @author mar...@de...
+ */
+public class BuContainerPreferencesPanel extends BuAbstractPreferencesPanel {
+ private BuAbstractPreferencesComponent[] cmps_;
+ private String category_;
+ private String title_;
+ private boolean isDirty_=false;
+
+ public BuContainerPreferencesPanel(BuAbstractPreferencesComponent[] _cmps, String _category, String _title) {
+ cmps_=_cmps;
+ category_=_category;
+ title_=_title;
+
+ setLayout(new BuVerticalLayout(5,true,false));
+
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ cmp.setContainer(this);
+
+ JPanel pn=new JPanel();
+ pn.setLayout(new BorderLayout());
+ pn.setBorder(new CompoundBorder(
+ new TitledBorder(cmp.getTitle()),
+ new EmptyBorder(5, 5, 5, 5)));
+ pn.add(cmp,BorderLayout.CENTER);
+ add(pn);
+ }
+ }
+
+ @Override
+ public String getCategory() {
+ return category_;
+ }
+
+ @Override
+ public String getTitle() {
+ return title_;
+ }
+
+ @Override
+ public boolean isPreferencesValidable() {
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ if (!cmp.isPreferencesValidable()) return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void validatePreferences() {
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ cmp.validatePreferences();
+ }
+ }
+
+ @Override
+ public boolean isPreferencesApplyable() {
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ if (!cmp.isPreferencesApplyable()) return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void applyPreferences() {
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ cmp.applyPreferences();
+ }
+ }
+
+ @Override
+ public boolean isPreferencesCancelable() {
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ if (!cmp.isPreferencesCancelable()) return false;
+ }
+ return true;
+ }
+
+ @Override
+ public void cancelPreferences() {
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ cmp.cancelPreferences();
+ }
+ }
+
+ @Override
+ public boolean isDirty() {
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ if (!cmp.isSavabled()) {
+ isDirty_=false;
+ return isDirty_;
+ }
+ }
+ for (BuAbstractPreferencesComponent cmp : cmps_) {
+ if (cmp.isModified()) {
+ isDirty_=true;
+ return isDirty_;
+ }
+ }
+
+ isDirty_=false;
+ return isDirty_;
+ }
+
+ /** Ne fait rien, l'\xE9tat dirty est determin\xE9 par les composants sous jacents */
+ @Override
+ public void setDirty(boolean _b) {
+ }
+
+ public void firePropertyChange() {
+ boolean oldDirty=isDirty_;
+ if (isDirty()!=oldDirty)
+ {
+ firePropertyChange("dirty",oldDirty,isDirty_);
+ }
+ }
+}
Property changes on: trunk/framework/ctulu-bu/src/main/java/com/memoire/bu/BuContainerPreferencesPanel.java
___________________________________________________________________
Added: svn:keywords
+ Id
Added: svn:eol-style
+ native
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|