|
From: <de...@us...> - 2012-10-10 20:25:19
|
Revision: 7733
http://fudaa.svn.sourceforge.net/fudaa/?rev=7733&view=rev
Author: deniger
Date: 2012-10-10 20:25:08 +0000 (Wed, 10 Oct 2012)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGActionInteraction.java
trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGFillePanel.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquesPanel.java
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionAbstract.java
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionInterface.java
trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliLib.java
Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGActionInteraction.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGActionInteraction.java 2012-10-09 23:18:52 UTC (rev 7732)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGActionInteraction.java 2012-10-10 20:25:08 UTC (rev 7733)
@@ -1,8 +1,8 @@
/**
- * @creation 24 juin 2004
- * @modification $Date: 2006-07-13 13:35:42 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @creation 24 juin 2004
+ * @modification $Date: 2006-07-13 13:35:42 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
* @mail de...@fu...
*/
package org.fudaa.ebli.courbe;
@@ -19,30 +19,31 @@
* @version $Id: EGActionInteraction.java,v 1.5 2006-07-13 13:35:42 deniger Exp $
*/
public class EGActionInteraction extends EbliActionChangeState implements PropertyChangeListener {
-
+
@Override
public void propertyChange(final PropertyChangeEvent _evt) {
final boolean newVal = ((Boolean) _evt.getNewValue()).booleanValue();
- if(newVal!=isSelected()) {
+ if (newVal != isSelected()) {
setSelected(newVal);
}
}
-
EGInteractiveComponent interComp_;
-
+
public EGActionInteraction(final String _name, final Icon _ic, final String _action, final EGInteractiveComponent _inter) {
super(_name, _ic, _action);
setTarget(_inter);
}
-
+
public final void setTarget(final EGInteractiveComponent _inter) {
+ if (interComp_ != null) {
+ interComp_.removePropertyChangeListener("active", this);
+ }
interComp_ = _inter;
interComp_.addPropertyChangeListener("active", this);
}
-
+
@Override
public void changeAction() {
interComp_.setActive(isSelected());
}
-
-}
\ No newline at end of file
+}
Modified: trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGFillePanel.java
===================================================================
--- trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGFillePanel.java 2012-10-09 23:18:52 UTC (rev 7732)
+++ trunk/framework/ebli-1d/src/main/java/org/fudaa/ebli/courbe/EGFillePanel.java 2012-10-10 20:25:08 UTC (rev 7733)
@@ -59,7 +59,7 @@
*/
public class EGFillePanel extends BuPanel implements PropertyChangeListener, ActionListener, CtuluSelectionInterface,
CtuluImageProducer {
-
+
protected final EGVue vue_;
JLabel lbTools_;
EbliActionInterface[] personnalAction_;
@@ -72,16 +72,24 @@
public EGFillePanel(final EGGraphe _a) {
this(_a, null);
}
-
+
public EGFillePanel duplicate() {
return new EGFillePanel(vue_.getGraphe().duplicate());
}
-
+
+ /**
+ * doit etre appelee si le panneau est ferm\xE9 definitivement
+ */
+ public void cleanListeners() {
+ EbliLib.cleanListener(personnalAction_);
+ EbliLib.cleanListener(specificTools_);
+ }
+
public void addSelectionListener(final CtuluListSelectionListener _l) {
selection_.addSelectionListener(_l);
-
+
}
-
+
public EGFillePanel(final EGGraphe _a, final EbliActionInterface[] _userAction) {
setLayout(new BuBorderLayout(5, 0));
personnalAction_ = _userAction;
@@ -96,7 +104,7 @@
lbTools_.setPreferredSize(new Dimension(200, 20));
lbTools_.setSize(new Dimension(100, 20));
lbTools_.setOpaque(false);
-
+
add(lbTools_, BuBorderLayout.SOUTH);
vue_ = new EGVue(_a);
add(vue_, BuBorderLayout.CENTER);
@@ -105,7 +113,7 @@
// suiviInfos_ = new EGInteractionSuiviAllOrdonnees(vue_.getGraphe());
}
-
+
protected void addListenerCourbePoint(final CtuluListSelectionListener _l) {
selection_.getSelection().addListeSelectionListener(_l);
}
@@ -126,7 +134,7 @@
r.add(a);
selection_.addPropertyChangeListener(this);
actionForGroup.add(a);
-
+
EbliActionAbstract s = new EbliActionSimple(EbliResource.EBLI.getString("Restaurer"), EbliResource.EBLI
.getIcon("restore"), "RESTORE") {
@Override
@@ -161,7 +169,7 @@
r.add(a);
actionForGroup.add(a);
zoom.addPropertyChangeListener(this);
-
+
final EGInteractionMove move = new EGInteractionMove(vue_.graphe_);
move.setDefaultInteractiveComponent(selection_);
vue_.addInteractiveCmp(move);
@@ -170,7 +178,7 @@
a.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('m'));
r.add(a);
actionForGroup.add(a);
-
+
final EGInteractionSuivi suivi = new EGInteractionSuivi(vue_.getGraphe());
vue_.addInteractiveCmp(suivi);
a = new EGActionInteraction(EbliLib.getS("suivi"), EbliResource.EBLI.getIcon("pointeur"), "SUIVI", suivi);
@@ -181,7 +189,7 @@
actionForGroup.add(a);
EbliActionSimple actionpal = new EGActionPaletteAllCoordonnees(this);
r.add(actionpal);
-
+
if (getModel().isContentModifiable()) {
r.add(null);
final EGInteractionAddPoint addPt = new EGInteractionAddPoint(this);
@@ -200,7 +208,7 @@
r.add(a);
pt.addPropertyChangeListener(this);
actionForGroup.add(a);
-
+
EbliActionSimple act = new EGSimplificationAction(vue_.graphe_);
r.add(act);
r.add(null);
@@ -215,16 +223,16 @@
EGPaletteLegendeGraphe palette = new EGPaletteLegendeGraphe(getGraphe());
palette.setPreferredSize(new Dimension(500, 600));
palette.afficheModale(CtuluLibSwing.getFrameAncestor(EGFillePanel.this));
-
+
}
});
-
+
final BPaletteInfoAbstractAction info = new BPaletteInfoAbstractAction() {
@Override
public JComponent buildContentPane() {
return new EGPaletteInfo(EGFillePanel.this, null);
}
-
+
@Override
protected boolean mustBeUpdated() {
return getModel().getNbSelectedObjects() >= 0;
@@ -232,9 +240,9 @@
};
r.add(info);
r.add(new EGTableAction(getGraphe()));
-
+
new EbliActionGroup(actionForGroup);
-
+
if (personnalAction_ != null) {
r.add(null);
final int nb = personnalAction_.length;
@@ -259,43 +267,43 @@
| InputEvent.SHIFT_DOWN_MASK));
r.add(addAction);
}
-
+
final EbliActionInterface[] rf = new EbliActionInterface[r.size()];
r.toArray(rf);
EbliLib.updateMapKeyStroke(this, rf);
-
+
return rf;
}
-
+
protected EGCourbe getCourbeSelected() {
return vue_.graphe_.getSelectedComponent();
}
-
+
public EGGraphe getGraphe() {
return vue_.graphe_;
}
-
+
protected EGGrapheModel getModel() {
return vue_.graphe_.getModel();
}
-
+
public CtuluListSelection getSelection() {
return selection_.getSelection();
}
-
+
public void majSelectionListener(final EGTableGraphePanel _tablePanel) {
if ((selection_ != null) && (_tablePanel != null)) {
_tablePanel.setListenerToSelection(selection_);
}
}
-
+
protected void majLabelInfo(final String _s) {
lbTools_.setText(_s);
}
-
+
protected void fillPopupMenu(final BuPopupMenu _menu) {
}
-
+
public void popupMenu(final int _x, final int _y) {
final BuPopupMenu m = new BuPopupMenu();
m.setInvoker(this);
@@ -305,7 +313,7 @@
fillSpecificMenu(m);
m.show(this, _x, _y);
}
-
+
@Override
public void actionPerformed(final ActionEvent _evt) {
if (FuLog.isTrace()) {
@@ -377,7 +385,7 @@
}
}
}
-
+
@Override
public void find() {
}
@@ -389,23 +397,23 @@
public Dimension getDefaultImageDimension() {
return vue_.getDefaultImageDimension();
}
-
+
public EGVue getView() {
return vue_;
}
-
+
public EbliActionInterface[] getSpecificActions() {
if (specificTools_ == null) {
specificTools_ = buildActions();
}
return specificTools_;
}
-
+
@Override
public void clearSelection() {
selection_.clearSelection();
}
-
+
@Override
public void inverseSelection() {
selection_.inverseSelection();
@@ -416,15 +424,15 @@
*/
@Override
public BufferedImage produceImage(final Map _params) {
-
+
return vue_.produceImage(_params);
}
-
+
@Override
public BufferedImage produceImage(final int _w, final int _h, final Map _params) {
return vue_.produceImage(_w, _h, _params);
}
-
+
@Override
public void propertyChange(final PropertyChangeEvent _evt) {
if (_evt.getSource() instanceof EGInteractiveComponent) {
@@ -436,11 +444,11 @@
}
}
}
-
+
@Override
public void replace() {
}
-
+
@Override
public void select() {
selection_.selectAll();
@@ -461,65 +469,65 @@
BuMenuItem alignPointMenuItem;
BuMenuItem refinePointMenuItem;
BuMenuItem removePointMenuItem;
-
+
public void fillMenuWithActions(final BuPopupMenu m) {
modifiyPointsMenuItem = addModifiyPointsMenuItem(m);
alignPointMenuItem = addAlignPointMenuItem(m);
refinePointMenuItem = addRefinePointMenuItem(m);
removePointMenuItem = addRemovePointMenuItem(m);
}
-
+
public boolean isSelectedCourbeModifiable() {
final EGCourbe c = vue_.graphe_.getSelectedComponent();
return (c != null) && (c.getModel().isModifiable()) && (getSelection() != null)
&& (!getSelection().isEmpty());
}
-
+
public boolean isSelectionAlignable() {
return isSelectedCourbeModifiable() && (getSelection().getNbSelectedIndex() >= 2);
}
-
+
public boolean isSelectionRefinable() {
return isSelectedCourbeModifiable()
&& (getSelection().getNbSelectedIndex() >= 2);
}
-
+
public boolean isSelectionRemovable() {
return isSelectedCourbeModifiable();
}
-
+
public BuMenuItem addModifiyPointsMenuItem(final BuPopupMenu m) {
return m.addMenuItem(EbliLib.getS("Modifier les points s\xE9lectionn\xE9s"), "MODIFY_POINTS", EbliResource.EBLI
.getToolIcon("node-edit"), isSelectedCourbeModifiable());
}
-
+
public BuMenuItem addModifiyPointsMenuItem(final CtuluPopupMenu m) {
return m.addMenuItem(EbliLib.getS("Modifier les points s\xE9lectionn\xE9s"), "MODIFY_POINTS", EbliResource.EBLI
.getToolIcon("node-edit"), isSelectedCourbeModifiable());
}
-
+
public BuMenuItem addAlignPointMenuItem(final CtuluPopupMenu m) {
return m.addMenuItem(EbliLib.getS("Aligner les points"), "ALIGN_POINTS", EbliResource.EBLI.getToolIcon("node-corner"), isSelectionAlignable());
}
-
+
public BuMenuItem addAlignPointMenuItem(final BuPopupMenu m) {
return m.addMenuItem(EbliLib.getS("Aligner les points"), "ALIGN_POINTS", EbliResource.EBLI.getToolIcon("node-corner"), isSelectionAlignable());
}
-
+
public BuMenuItem addRefinePointMenuItem(final CtuluPopupMenu m) {
return m.addMenuItem(EbliLib.getS("Raffiner"), "ADD_POINTS", EbliResource.EBLI.getToolIcon("node-add"), isSelectionRefinable());
}
-
+
public BuMenuItem addRefinePointMenuItem(final BuPopupMenu m) {
return m.addMenuItem(EbliLib.getS("Raffiner"), "ADD_POINTS", EbliResource.EBLI.getToolIcon("node-add"), isSelectionRefinable());
}
-
+
public BuMenuItem addRemovePointMenuItem(final CtuluPopupMenu m) {
final BuMenuItem addMenuItem = m.addMenuItem(EbliLib.getS("Supprimer un point"), "REMOVE_POINTS", EbliResource.EBLI.getToolIcon("node-delete"), isSelectionRemovable());
addMenuItem.setAccelerator(EGTableGraphePanel.getDeleteKeyStroke());
return addMenuItem;
}
-
+
public BuMenuItem addRemovePointMenuItem(final BuPopupMenu m) {
final BuMenuItem addMenuItem = m.addMenuItem(EbliLib.getS("Supprimer un point"), "REMOVE_POINTS", EbliResource.EBLI.getToolIcon("node-delete"), isSelectionRemovable());
addMenuItem.setAccelerator(EGTableGraphePanel.getDeleteKeyStroke());
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2012-10-09 23:18:52 UTC (rev 7732)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2012-10-10 20:25:08 UTC (rev 7733)
@@ -55,10 +55,9 @@
import org.fudaa.ebli.palette.BPaletteInfo;
/**
- * Un controleur des actions du panneau d'affichage 2D des calques. Il gere en particulier les actions de navigation, de
- * selection. Il g\xE8re \xE9galement les actions exclusives. Une action est exclusive lorsqu'elle d\xE9sactive une autre action en cours.
- * <p> Exemple : une action s\xE9lection d\xE9sactivera une action zoom en cours. <p> Ce controleur peut \xE9galement g\xE9rer des actions
- * exclusives sp\xE9cifiques.
+ * Un controleur des actions du panneau d'affichage 2D des calques. Il gere en particulier les actions de navigation, de selection. Il g\xE8re \xE9galement
+ * les actions exclusives. Une action est exclusive lorsqu'elle d\xE9sactive une autre action en cours. <p> Exemple : une action s\xE9lection d\xE9sactivera
+ * une action zoom en cours. <p> Ce controleur peut \xE9galement g\xE9rer des actions exclusives sp\xE9cifiques.
*
* @author Fred Deniger
* @version $Id$
@@ -140,7 +139,7 @@
// TODO : Le calque interactif d'accrochage pourrait n'etre actif que si le calque courant interactif est un calque
// implementant ZCatchListener
if (cqInteractionActif_ == null || !(cqInteractionActif_ instanceof ZCatchListener)
- || !((ZCatchListener) cqInteractionActif_).isCachingEnabled()) {
+ || !((ZCatchListener) cqInteractionActif_).isCachingEnabled()) {
return;
}
@@ -179,7 +178,7 @@
String[] vars = {cqName, idxGeom, idxVertex, xname, x, yname, y, zname, z};
String text =
- EbliResource.EBLI.getString(
+ EbliResource.EBLI.getString(
"Accroche : Calque={0} Geom={1} Sommet={2} {3}={4} {5}={6} {7}={8} (n:Suivant, u:D\xE9crocher)", vars);
pn_.setInfoText(text);
} else {
@@ -243,6 +242,16 @@
this(true, _ui);
}
+ /**
+ * Attention a n'utiliser que si les composants est d\xE9truit et plus utilise.
+ */
+ public void clearListeners() {
+ EbliLib.cleanListener(navigationActionGroup_);
+ EbliLib.cleanListener(specificActionGroup_);
+ EbliLib.cleanListener(standardActionGroup_);
+
+ }
+
private void activeActionForSelectedLayer() {
// Le panneau des boutons de s\xE9lection est invisible => Pas d'action.
if (selectedActionGroup_ == null) {
@@ -289,9 +298,8 @@
protected EbliActionInterface createRepereAction() {
final EbliActionPaletteAbstract plAction = new EbliActionPaletteAbstract(EbliLib.getS("Rep\xE8re"),
- EbliResource.EBLI.getIcon("repere"),
- "CHANGE_REFERENCE") {
-
+ EbliResource.EBLI.getIcon("repere"),
+ "CHANGE_REFERENCE") {
@Override
public JComponent buildContentPane() {
final BControleRepereTexte crt = new BControleRepereTexte(pn_.getVueCalque());
@@ -315,8 +323,7 @@
navigationActionGroup_ = new EbliActionInterface[7];
// RESTORE ACTION
final EbliActionSimple restore = new EbliActionSimple(EbliLib.getS("Restaurer"), EbliResource.EBLI.getIcon("restore"),
- "RESTORE") {
-
+ "RESTORE") {
@Override
public void actionPerformed(ActionEvent _arg) {
pn_.restaurer();
@@ -329,7 +336,7 @@
navigationActionGroup_[i++] = restore;
// ZOOM ACTION
CalqueActionInteraction action = new CalqueActionInteraction(EbliLib.getS("Zoom"), EbliResource.EBLI.getIcon("loupe"), "ZOOM",
- cqZoomI_);
+ cqZoomI_);
action.setDefaultToolTip(EbliLib.getZoomDesc());
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('z'));
@@ -338,8 +345,7 @@
// VIEW NAVIGATION
navigationActionGroup_[i] = new EbliActionSimple(EbliLib.getS("Derni\xE8re vue"), EbliResource.EBLI.getIcon("zoom-previous"),
- "LAST_VIEW") {
-
+ "LAST_VIEW") {
@Override
public void actionPerformed(final ActionEvent _arg) {
pn_.getVueCalque().undoRepere();
@@ -349,7 +355,7 @@
navigationActionGroup_[i++].setDefaultToolTip(EbliLib.getS("Retourner \xE0 la derni\xE8re vue"));
// action.putValue(Action.MNEMONIC_KEY, new Int);
action = new CalqueActionInteraction(EbliLib.getS("D\xE9placer la vue"), EbliResource.EBLI.getIcon("main"), "MOVE_VIEW",
- cqDepVueI_);
+ cqDepVueI_);
action.putValue(Action.SHORT_DESCRIPTION, EbliLib.getS("D\xE9placer la vue"));
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('m'));
navigationActionGroup_[i++] = action;
@@ -360,8 +366,7 @@
}
// NAVIGATION
final EbliActionPaletteAbstract plAction = new EbliActionPaletteAbstract(EbliLib.getS("Navigation"),
- EbliResource.EBLI.getIcon("navigation"), "NAVIGATE") {
-
+ EbliResource.EBLI.getIcon("navigation"), "NAVIGATE") {
@Override
public JComponent buildContentPane() {
return new ZTransformationDomaine(pn_.getVueCalque());
@@ -386,19 +391,19 @@
// les eblistatebutton permettent de creer des etats et de mettre
// a jour la fenetre en fonction.
CalqueSelectionAction action = new CalqueSelectionAction(this, EbliResource.EBLI.getIcon("fleche"),
- "RECTANGLE_SELECTION", ZCalqueSelectionInteractionAbstract.RECTANGLE);
+ "RECTANGLE_SELECTION", ZCalqueSelectionInteractionAbstract.RECTANGLE);
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('s'));
final String tltTip = "<table><tr><td><b>" + EbliLib.getS("Raccourci") + "</b></td><td><b>"
- + EbliLib.getS("Action") + "</td></tr><tr><td><i>Shift</i></td><td>"
- + EbliLib.getS("Ajouter \xE0 la s\xE9lection courante") + "</td></tr><tr><td><i>Ctrl</i></td><td>"
- + EbliLib.getS("Enlever de la s\xE9lection courante") + "</td></tr><tr><td><i>Ctrl+Shift</i></td><td>"
- + EbliLib.getS("Op\xE9ration OU Exclusif") + "</td></tr><tr><td><i>Ctrl+Alt</i> (opt.) </td><td>"
- + EbliLib.getS("S\xE9lectionner entre 2 points") + "</td></tr></table>";;
+ + EbliLib.getS("Action") + "</td></tr><tr><td><i>Shift</i></td><td>"
+ + EbliLib.getS("Ajouter \xE0 la s\xE9lection courante") + "</td></tr><tr><td><i>Ctrl</i></td><td>"
+ + EbliLib.getS("Enlever de la s\xE9lection courante") + "</td></tr><tr><td><i>Ctrl+Shift</i></td><td>"
+ + EbliLib.getS("Op\xE9ration OU Exclusif") + "</td></tr><tr><td><i>Ctrl+Alt</i> (opt.) </td><td>"
+ + EbliLib.getS("S\xE9lectionner entre 2 points") + "</td></tr></table>";;
action.setDefaultToolTip(tltTip);
selectedActionGroup_[i++] = action;
action = new CalqueSelectionAction(this, EbliResource.EBLI.getIcon("fleche-polygone"), "POLYGON_SELECTION",
- ZCalqueSelectionInteractionAbstract.POLYGONE);
+ ZCalqueSelectionInteractionAbstract.POLYGONE);
action.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('p'));
action.setDefaultToolTip(tltTip);
selectedActionGroup_[i++] = action;
@@ -419,9 +424,8 @@
plAction.setParent(pn_);
l.add(plAction);
EbliActionPaletteAbstract ebliActionPaletteAbstract = new EbliActionPaletteAbstract(EbliLib.getS("L\xE9gende"),
- EbliResource.EBLI.getToolIcon("legend"),
- "EDIT_LEGEND", true) {
-
+ EbliResource.EBLI.getToolIcon("legend"),
+ "EDIT_LEGEND", true) {
@Override
public JComponent buildContentPane() {
return new BCalqueLegendeCustomizer(getView().getCqLegend());
@@ -432,7 +436,6 @@
l.add(new BConfigurePaletteAction(getView().getArbreCalqueModel().getTreeSelectionModel()));
if (useInfo_) {
infoPalette_ = new BPaletteInfoAbstractAction() {
-
@Override
protected boolean mustBeUpdated() {
return getCalqueActif() != null;
@@ -666,6 +669,7 @@
/**
* Seulement les actions non specifiques d'une vue 2d.
+ *
* @return
*/
public List<EbliActionInterface> getNonSpecificsActions() {
@@ -781,7 +785,7 @@
if ("visible".equals(_evt.getPropertyName())) {
activeActionForSelectedLayer();
} else if ((_evt.getSource() == pn_.getScene().getCalqueActif())
- || ((cqInteractionActif_ != null) && (_evt.getSource() == cqInteractionActif_))) {
+ || ((cqInteractionActif_ != null) && (_evt.getSource() == cqInteractionActif_))) {
updateModeText();
}
}
@@ -876,6 +880,7 @@
/**
* Affecte les d\xE9finitions pour les coordonn\xE9es affich\xE9es dans la barre de statut.
+ *
* @param _defs Les d\xE9finitions.
*/
public void setCoordinateDefinitions(EbliCoordinateDefinition[] _defs) {
@@ -884,6 +889,7 @@
/**
* Retourne les d\xE9finition des coordonn\xE9es du syst\xE8me de coordonn\xE9es.
+ *
* @return Les d\xE9finitions
*/
public EbliCoordinateDefinition[] getCoordinateDefinitions() {
@@ -953,8 +959,8 @@
/**
* TreeSelection (mise a jour des etats des boutons de Selection en fonction du calque). Affecte le calque actif (
- * <code>getCalqueActif</code>) de cette classe, modifie les calque actifs du calque de selection ( un seul calque actif) et met
- * a jour l'etat des specific tools (si option validee).
+ * <code>getCalqueActif</code>) de cette classe, modifie les calque actifs du calque de selection ( un seul calque actif) et met a jour l'etat des
+ * specific tools (si option validee).
*
* @param _evt
*/
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquesPanel.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2012-10-09 23:18:52 UTC (rev 7732)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2012-10-10 20:25:08 UTC (rev 7733)
@@ -365,6 +365,14 @@
public ZEbliCalquesPanel(final BCalque _gcInit, final ZEbliCalquePanelController _controller) {
this(_gcInit, _controller, true);
}
+
+ /**
+ * Attention a n'utiliser que si les composants est d\xE9truit et plus utilise.
+ */
+ public void clearListeners() {
+ controller_.clearListeners();
+ contextTools_.removeAll();
+ }
/**
* Construction des calques par defaut.
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionAbstract.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionAbstract.java 2012-10-09 23:18:52 UTC (rev 7732)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionAbstract.java 2012-10-10 20:25:08 UTC (rev 7733)
@@ -10,6 +10,7 @@
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
+import java.beans.PropertyChangeListener;
import java.util.Collection;
import javax.swing.AbstractAction;
@@ -22,8 +23,8 @@
import org.fudaa.ctulu.CtuluResource;
/**
- * Une action avec tooltip adapt\xE9 \xE0 l'\xE9tat du bouton. Si le bouton est d\xE9sactiv\xE9, un tooltip expliquant commant
- * le rendre actif est affich\xE9.
+ * Une action avec tooltip adapt\xE9 \xE0 l'\xE9tat du bouton. Si le bouton est d\xE9sactiv\xE9, un tooltip expliquant commant le rendre actif est affich\xE9.
+ *
* @author deniger
* @version $Id: EbliActionAbstract.java,v 1.14.6.1 2008-02-22 16:25:43 bmarchan Exp $
*/
@@ -48,6 +49,16 @@
putValue(Action.SMALL_ICON, _ic);
}
+ /**
+ * attention: doit etre appele pour faire le menage uniquement !
+ */
+ public void cleanListener() {
+ PropertyChangeListener[] propertyChangeListeners = getPropertyChangeListeners();
+ for (PropertyChangeListener propertyChangeListener : propertyChangeListeners) {
+ removePropertyChangeListener(propertyChangeListener);
+ }
+ }
+
public String getTitle() {
return (String) super.getValue(Action.NAME);
}
@@ -93,7 +104,8 @@
return r.toString();
}
- public void actionPerformed(final ActionEvent _e) {}
+ public void actionPerformed(final ActionEvent _e) {
+ }
public AbstractButton buildButton(final EbliComponentFactory _f) {
return null;
@@ -111,10 +123,10 @@
final StringBuffer r = new StringBuffer("<p style=\"margin:2px\">").append(getDefaultTooltip()).append("</p>");
if (_endMessage != null) {
r.append("<p style=\"margin:5px;margin-top:2px;\"><u color=\"red\">").append(
- CtuluResource.CTULU.getString("Message:")).append("</u>").append(_endMessage).append("</p>");
+ CtuluResource.CTULU.getString("Message:")).append("</u>").append(_endMessage).append("</p>");
}
r.append("<p style=\"margin:5px;margin-top:2px\"><u>").append(EbliLib.getS("Condition:")).append("</u><br>")
- .append(_message).append("</p>");
+ .append(_message).append("</p>");
return r.toString();
}
@@ -158,7 +170,6 @@
}
public void updateStateBeforeShow() {
-
}
public final void setDefaultToolTip(final String _s) {
@@ -180,10 +191,14 @@
* @return l'action trouvee ou null sinon.
*/
public static Action findAction(Collection<EbliActionInterface> acts, String _actionCmd) {
- if ((acts == null) || (_actionCmd == null)) { return null; }
+ if ((acts == null) || (_actionCmd == null)) {
+ return null;
+ }
for (Action action : acts) {
- if (action != null && action.getValue(Action.ACTION_COMMAND_KEY).equals(_actionCmd)) return action;
+ if (action != null && action.getValue(Action.ACTION_COMMAND_KEY).equals(_actionCmd)) {
+ return action;
+ }
}
return null;
}
-}
\ No newline at end of file
+}
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionInterface.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionInterface.java 2012-10-09 23:18:52 UTC (rev 7732)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliActionInterface.java 2012-10-10 20:25:08 UTC (rev 7733)
@@ -11,9 +11,8 @@
import javax.swing.Action;
/**
- * Une interface Action au sens Ebli. Cette interface sait creer les boutons correspondants
- * \xE0 l'action.
- *
+ * Une interface Action au sens Ebli. Cette interface sait creer les boutons correspondants \xE0 l'action.
+ *
* @author deniger
* @version $Id: EbliActionInterface.java,v 1.7.8.1 2008-01-17 11:42:52 bmarchan Exp $
*/
@@ -31,10 +30,14 @@
*/
AbstractButton buildToolButton(EbliComponentFactory _f);
-
void setDefaultToolTip(String _s);
/**
+ * attention: doit etre appele pour faire le menage uniquement !
+ */
+ void cleanListener();
+
+ /**
* @param _f l'usine des JComponent
* @return un bouton pour les panels normaux
*/
Modified: trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliLib.java
===================================================================
--- trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliLib.java 2012-10-09 23:18:52 UTC (rev 7732)
+++ trunk/framework/ebli-common/src/main/java/org/fudaa/ebli/commun/EbliLib.java 2012-10-10 20:25:08 UTC (rev 7733)
@@ -46,25 +46,24 @@
/**
* Ensemble de methodes utilitaires non classees.
- *
+ *
* @author Fred Deniger
* @version $Id: EbliLib.java,v 1.37 2007-05-04 13:49:47 deniger Exp $
*/
public final class EbliLib {
private EbliLib() {
-
}
public static ObjectInputStream createObjectInpuStream(final File file, XStream parser) throws IOException,
- FileNotFoundException {
+ FileNotFoundException {
return parser.createObjectInputStream(new InputStreamReader(new FileInputStream(file), Charset.forName("UTF-8")));
}
public static ObjectOutputStream createObjectOutpuStream(final File file, XStream parser) throws IOException,
- FileNotFoundException {
+ FileNotFoundException {
return parser
- .createObjectOutputStream(new OutputStreamWriter(new FileOutputStream(file), Charset.forName("UTF-8")));
+ .createObjectOutputStream(new OutputStreamWriter(new FileOutputStream(file), Charset.forName("UTF-8")));
}
public static boolean isAlphaChanged(final int _alpha) {
@@ -72,7 +71,9 @@
}
public static Color getAlphaColor(final Color _init, final int _alpha) {
- if (_init == null || _alpha <= 0 || _alpha >= 255) { return _init; }
+ if (_init == null || _alpha <= 0 || _alpha >= 255) {
+ return _init;
+ }
return new Color(_init.getRed(), _init.getGreen(), _init.getBlue(), _alpha);
}
@@ -80,12 +81,15 @@
* @param _initValue la valeur initiale
* @param _min la valeur min autorisee
* @param _max la valeur max autorisee
- * @return la valeur _initValue si elle est comprise entre les bornes min,max. Sinon, min si valeur inferieur et max
- * si max
+ * @return la valeur _initValue si elle est comprise entre les bornes min,max. Sinon, min si valeur inferieur et max si max
*/
private static int setIn(int _initValue, int _min, int _max) {
- if (_initValue < _min) return _min;
- if (_initValue > _max) return _max;
+ if (_initValue < _min) {
+ return _min;
+ }
+ if (_initValue > _max) {
+ return _max;
+ }
return _initValue;
}
@@ -101,17 +105,17 @@
public static String getZoomDesc() {
return "<table cellpadding='1'><tr><td>" + EbliLib.getS("Un clic gauche") + "</td><td>:"
- + EbliLib.getS("Zoom centr\xE9 sur le point cliqu\xE9") + "</tr><tr><td>" + EbliLib.getS("Rectangle dessin\xE9")
- + "</td><td>:" + EbliLib.getS("Zoom sur le rectangle dessin\xE9") + "</tr><tr><td<i>Shift</i>+"
- + EbliLib.getS("un clic gauche") + "</td><td>:" + EbliLib.getS("Zoom arri\xE8re centr\xE9 sur le point cliqu\xE9")
- + "</table>";
+ + EbliLib.getS("Zoom centr\xE9 sur le point cliqu\xE9") + "</tr><tr><td>" + EbliLib.getS("Rectangle dessin\xE9")
+ + "</td><td>:" + EbliLib.getS("Zoom sur le rectangle dessin\xE9") + "</tr><tr><td<i>Shift</i>+"
+ + EbliLib.getS("un clic gauche") + "</td><td>:" + EbliLib.getS("Zoom arri\xE8re centr\xE9 sur le point cliqu\xE9")
+ + "</table>";
}
/**
* @param _sortedArray le tableau des indices dans l'ordre croissant
* @param _nbItem le nombre d'item
- * @return -1 if no contiguous selection 0 if one selection without loop of index i>0 if one selection with loop of
- * index (the first non selected idx).
+ * @return -1 if no contiguous selection 0 if one selection without loop of index i>0 if one selection with loop of index (the first non selected
+ * idx).
*/
public static int isSelectionContiguous(final int[] _sortedArray, final int _nbItem) {
final int n = _sortedArray.length;
@@ -216,29 +220,37 @@
}
/**
- * Renvoie le bouton dont l'actionCommand est egale a <code>_actionCommand</code>. Renvoie null si un des deux
- * parametres est nul.
- *
+ * Renvoie le bouton dont l'actionCommand est egale a
+ * <code>_actionCommand</code>. Renvoie null si un des deux parametres est nul.
+ *
* @return le bouton de <code>_buttons</code> tel que <code>_actionCommand.equals(_buttons.getActionCommand)</code>.
*/
public static AbstractButton getAbstractButton(final String _actionCommand, final AbstractButton[] _buttons) {
- if ((_actionCommand == null) || (_buttons == null)) { return null; }
+ if ((_actionCommand == null) || (_buttons == null)) {
+ return null;
+ }
final int n = _buttons.length - 1;
AbstractButton b;
for (int i = n; i >= 0; i--) {
b = _buttons[i];
- if (b != null && _actionCommand.equals(b.getActionCommand())) { return b; }
+ if (b != null && _actionCommand.equals(b.getActionCommand())) {
+ return b;
+ }
}
return null;
}
public static int getAbstractButtonIndex(final String _actionCommand, final AbstractButton[] _buttons) {
- if ((_actionCommand == null) || (_buttons == null)) { return -1; }
+ if ((_actionCommand == null) || (_buttons == null)) {
+ return -1;
+ }
final int n = _buttons.length - 1;
AbstractButton b;
for (int i = n; i >= 0; i--) {
b = _buttons[i];
- if (b != null && _actionCommand.equals(b.getActionCommand())) { return i; }
+ if (b != null && _actionCommand.equals(b.getActionCommand())) {
+ return i;
+ }
}
return -1;
}
@@ -282,6 +294,20 @@
return EbliResource.EBLI.getString(_s, _v0, _v1);
}
+ public static void cleanListener(EbliActionInterface[] actions) {
+ if (actions != null) {
+ for (EbliActionInterface ebliActionInterface : actions) {
+ cleanListener(ebliActionInterface);
+ }
+ }
+ }
+
+ public static void cleanListener(EbliActionInterface action) {
+ if (action != null) {
+ action.cleanListener();
+ }
+ }
+
public static List<JComponent> updateToolButtons(final List<? extends EbliActionInterface> _dest, final BuDesktop _bu) {
if (_dest != null) {
final List<JComponent> res = new ArrayList<JComponent>(_dest.size());
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|