|
From: <bma...@us...> - 2008-06-20 14:51:55
|
Revision: 3654
http://fudaa.svn.sourceforge.net/fudaa/?rev=3654&view=rev
Author: bmarchan
Date: 2008-06-20 07:51:55 -0700 (Fri, 20 Jun 2008)
Log Message:
-----------
L'arbre des calques devient observer de son modele BArbreCalqueModel. Ceci pour qu'il soit mis a jour en cas de modification du modele.
Modified Paths:
--------------
branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java
Modified: branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java
===================================================================
--- branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java 2008-06-20 09:52:16 UTC (rev 3653)
+++ branches/Br_FudaaModeleur_TF/fudaa_devel/ebli/src/org/fudaa/ebli/calque/BArbreCalque.java 2008-06-20 14:51:55 UTC (rev 3654)
@@ -21,6 +21,8 @@
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.util.EventObject;
+import java.util.Observable;
+import java.util.Observer;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
@@ -39,6 +41,7 @@
import com.memoire.bu.BuLightBorder;
import com.memoire.bu.BuMenu;
import com.memoire.bu.BuTextField;
+import com.memoire.bu.BuVerticalLayout;
import org.fudaa.ctulu.CtuluLib;
import org.fudaa.ctulu.CtuluLibString;
@@ -129,7 +132,7 @@
* @author Guillaume Desnoix
*/
-public class BArbreCalque extends JTree implements InternalFrameListener {
+public class BArbreCalque extends JTree implements InternalFrameListener, Observer {
class ArbreCellEditor extends AbstractCellEditor implements TreeCellEditor {
@@ -421,6 +424,11 @@
* @param _m le nouveau modele
*/
public final void setModel(final BArbreCalqueModel _m) {
+ if (getModel()!=null)
+ ((BArbreCalqueModel)getModel()).getObservable().deleteObserver(this);
+ if (_m!=null)
+ _m.getObservable().addObserver(this);
+
// pour eviter d'initialiser l'ancien model de selection
super.setSelectionModel(null);
super.setModel(_m);
@@ -474,6 +482,7 @@
private final Color treeSelectionBakground_ = UIManager.getColor("Tree.selectionBackground");
JCheckBox cbVisible_;
+ JLabel lbSelect_;
final JTextField r1_;
@@ -492,6 +501,12 @@
r2_.setPreferredSize(new Dimension(80, 12));
r3_ = new JLabel(" ");
r3_.setPreferredSize(new Dimension(25,25));
+ lbSelect_=new JLabel(EbliResource.EBLI.getIcon("selection.gif"));
+ lbSelect_.setOpaque(false);
+ JPanel pnLeft=new JPanel();
+ pnLeft.setLayout(new BuVerticalLayout(1,true,true));
+ pnLeft.setOpaque(false);
+
final JPanel r4 = new JPanel(new BuBorderLayout(0, 1, true, true));
r4.add(r1_, BuBorderLayout.CENTER);
r4.add(r2_, BuBorderLayout.SOUTH);
@@ -501,6 +516,7 @@
setLayout(lay);
add(r3_, BuBorderLayout.CENTER);
add(r4, BuBorderLayout.EAST);
+
if (_editable) {
cbVisible_ = new BuCheckBox();
// pour ne pas tout dessiner
@@ -508,9 +524,11 @@
cbVisible_.setToolTipText(EbliLib.getS("Visible"));
cbVisible_.setVerticalAlignment(SwingConstants.TOP);
cbVisible_.setHorizontalAlignment(SwingConstants.RIGHT);
- cbVisible_.setMargin(new Insets(8, 0, 0, 0));
- add(cbVisible_, BuBorderLayout.WEST);
+ cbVisible_.setMargin(new Insets(0, 0, 0, 0));
+ pnLeft.add(cbVisible_);
}
+ pnLeft.add(lbSelect_);
+ add(pnLeft, BuBorderLayout.WEST);
setOpaque(true);
}
@@ -560,6 +578,13 @@
s.append(EbliResource.EBLI.getString("gel\xE9"));
}
}
+ if (calque instanceof ZCalqueAffichageDonneesAbstract) {
+ final ZCalqueAffichageDonneesAbstract cq = (ZCalqueAffichageDonneesAbstract) calque;
+ lbSelect_.setVisible(!cq.isSelectionEmpty());
+ }
+ else {
+ lbSelect_.setVisible(false);
+ }
if (!calque.isVisible()) {
if (s.length() > 0) {
s.append(CtuluLibString.ESPACE);
@@ -662,6 +687,13 @@
return this;
}
}
+
+ /* (non-Javadoc)
+ * @see java.util.Observer#update(java.util.Observable, java.lang.Object)
+ */
+ public void update(Observable o, Object arg) {
+ repaint();
+ }
}
/**
* Modele de donnees pour l'arbre de calques.
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|