From: Frederic D. <de...@us...> - 2004-03-31 08:29:38
|
Update of /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/commun/undo In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10634/src/org/fudaa/fudaa/commun/undo Modified Files: FudaaUndoCmdMngListener.java FudaaUndoCmdMngContainer.java FudaaUndoPaneFille.java Log Message: Maj post Index: FudaaUndoCmdMngContainer.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/commun/undo/FudaaUndoCmdMngContainer.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FudaaUndoCmdMngContainer.java 25 Nov 2003 10:13:36 -0000 1.2 --- FudaaUndoCmdMngContainer.java 31 Mar 2004 08:17:50 -0000 1.3 *************** *** 14,18 **** */ public interface FudaaUndoCmdMngContainer { ! public DodicoCommandManager getCmdMng(); public void setActive(boolean _b); } --- 14,19 ---- */ public interface FudaaUndoCmdMngContainer { ! public void clearCmd(DodicoCommandManager _source); public void setActive(boolean _b); + public DodicoCommandManager getCmdMng(); } Index: FudaaUndoPaneFille.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/commun/undo/FudaaUndoPaneFille.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** FudaaUndoPaneFille.java 19 Dec 2003 12:10:55 -0000 1.4 --- FudaaUndoPaneFille.java 31 Mar 2004 08:17:50 -0000 1.5 *************** *** 9,19 **** package org.fudaa.fudaa.commun.undo; import java.awt.Component; ! import java.beans.PropertyVetoException; import javax.swing.Icon; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; import com.memoire.bu.BuInternalFrame; import com.memoire.bu.BuTabbedPane; import com.memoire.bu.BuUndoRedoInterface; import org.fudaa.dodico.commun.DodicoCommandManager; /** --- 9,21 ---- package org.fudaa.fudaa.commun.undo; import java.awt.Component; ! import javax.swing.Icon; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; + import com.memoire.bu.BuInternalFrame; import com.memoire.bu.BuTabbedPane; import com.memoire.bu.BuUndoRedoInterface; + import org.fudaa.dodico.commun.DodicoCommandManager; /** *************** *** 23,29 **** public class FudaaUndoPaneFille extends BuInternalFrame ! implements ChangeListener, BuUndoRedoInterface { private BuTabbedPane pane_; ! FudaaUndoCmdMngListener listener; /** * --- 25,31 ---- public class FudaaUndoPaneFille extends BuInternalFrame ! implements ChangeListener, BuUndoRedoInterface,FudaaUndoCmdMngContainer { private BuTabbedPane pane_; ! FudaaUndoCmdMngListener l_; /** * *************** *** 31,36 **** public FudaaUndoPaneFille(FudaaUndoCmdMngListener _l) { pane_= new BuTabbedPane(); - listener= _l; setContentPane(pane_); pane_.getModel().addChangeListener(this); } --- 33,38 ---- public FudaaUndoPaneFille(FudaaUndoCmdMngListener _l) { pane_= new BuTabbedPane(); setContentPane(pane_); + l_=_l; pane_.getModel().addChangeListener(this); } *************** *** 47,56 **** boolean _closable, boolean _maximizable, ! boolean _iconifiable, ! FudaaUndoCmdMngListener _l) { super(_title, _resizable, _closable, _maximizable, _iconifiable); pane_= new BuTabbedPane(); - listener= _l; setContentPane(pane_); pane_.getModel().addChangeListener(this); } --- 49,57 ---- boolean _closable, boolean _maximizable, ! boolean _iconifiable,FudaaUndoCmdMngListener _l) { super(_title, _resizable, _closable, _maximizable, _iconifiable); pane_= new BuTabbedPane(); setContentPane(pane_); + l_=_l; pane_.getModel().addChangeListener(this); } *************** *** 62,67 **** DodicoCommandManager _mng) { pane_.addTab(title, icon, c, tooltip); ! if (_mng != null) ! listener.add(_mng); } public Component getSelectedComponent() { --- 63,68 ---- DodicoCommandManager _mng) { pane_.addTab(title, icon, c, tooltip); ! if(_mng!=null) _mng.setListener(l_); ! } public Component getSelectedComponent() { *************** *** 85,90 **** ((FudaaUndoCmdMngContainer)pane_.getComponent(j)).setActive(false); } ! listener.setActive(selected.getCmdMng(), isSelected); ! selected.setActive(true); } public void redo() { --- 86,90 ---- ((FudaaUndoCmdMngContainer)pane_.getComponent(j)).setActive(false); } ! l_.setActive(selected,true); } public void redo() { *************** *** 103,114 **** } } ! public void setSelected(boolean b) throws PropertyVetoException { ! if (b != isSelected) { ! super.setSelected(b); ! FudaaUndoCmdMngContainer cpt= ! (FudaaUndoCmdMngContainer)pane_.getSelectedComponent(); ! listener.setActive(cpt.getCmdMng(), isSelected); ! cpt.setActive(isSelected); } } } --- 103,133 ---- } } ! ! /** ! * @see org.fudaa.fudaa.commun.undo.FudaaUndoCmdMngContainer#getCmdMng() ! */ ! public DodicoCommandManager getCmdMng() { ! return getActiveCmdMng(); ! } ! ! /** ! * @see org.fudaa.fudaa.commun.undo.FudaaUndoCmdMngContainer#setActive(boolean) ! */ ! public void setActive(boolean _b) { ! ((FudaaUndoCmdMngContainer)pane_.getSelectedComponent()).setActive(_b); ! } ! ! /** ! * @see org.fudaa.fudaa.commun.undo.FudaaUndoCmdMngContainer#clearCmd(org.fudaa.dodico.commun.DodicoCommandManager) ! */ ! public void clearCmd(DodicoCommandManager _source) { ! System.out.println("clear"); ! Component[] c= pane_.getComponents(); ! for (int j= c.length - 1; j >= 0; j--) { ! if(pane_.getComponent(j)!=this) ! ((FudaaUndoCmdMngContainer)pane_.getComponent(j)).clearCmd(_source); } + } + } Index: FudaaUndoCmdMngListener.java =================================================================== RCS file: /cvsroot/fudaa/fudaa_devel/fudaa/src/org/fudaa/fudaa/commun/undo/FudaaUndoCmdMngListener.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** FudaaUndoCmdMngListener.java 12 Dec 2003 10:58:42 -0000 1.3 --- FudaaUndoCmdMngListener.java 31 Mar 2004 08:17:50 -0000 1.4 *************** *** 8,80 **** */ package org.fudaa.fudaa.commun.undo; - import java.util.HashSet; - import java.util.Iterator; - import java.util.Set; - - import org.fudaa.ctulu.CtuluLib; import com.memoire.bu.BuCommonImplementation; - import org.fudaa.dodico.commun.DodicoCmdMngListener; import org.fudaa.dodico.commun.DodicoCommandManager; - - import org.fudaa.fudaa.commun.FudaaLib; /** * Class for undoredo manager with concurrent access * @author deniger * @version $Id$ */ ! public class FudaaUndoCmdMngListener implements DodicoCmdMngListener { ! Set cmds_; ! DodicoCommandManager active_; BuCommonImplementation impl_; /** ! * */ public FudaaUndoCmdMngListener(BuCommonImplementation _impl) { ! cmds_= new HashSet(); ! impl_= _impl; } ! public void add(DodicoCommandManager _m) { ! if (_m != null) { ! cmds_.add(_m); ! _m.setListener(this); } } ! public void setActive(DodicoCommandManager _m, boolean b) { ! if ((_m != null) && (cmds_.contains(_m))) { ! if (b && (active_ != _m)) { ! active_= _m; ! impl_.setEnabledForAction("DEFAIRE", active_.canUndo()); ! impl_.setEnabledForAction("REFAIRE", active_.canRedo()); ! if (CtuluLib.DEBUG) ! CtuluLib.debug("setActif undoredo Manager"); ! } else if (!b && (active_ == _m)) { ! active_= null; ! impl_.setEnabledForAction("DEFAIRE", false); ! impl_.setEnabledForAction("REFAIRE", false); ! if (CtuluLib.DEBUG) ! CtuluLib.debug("setUnactif undoredo Manager"); ! } } } /** ! * */ public void undoredoStateChange(DodicoCommandManager _source) { ! if (_source == active_) { ! if (active_ != null) { ! impl_.setEnabledForAction("DEFAIRE", active_.canUndo()); ! impl_.setEnabledForAction("REFAIRE", active_.canRedo()); ! for (Iterator it= cmds_.iterator(); it.hasNext();) { ! DodicoCommandManager cmd= (DodicoCommandManager)it.next(); ! if (cmd != active_) { ! if (CtuluLib.DEBUG) ! CtuluLib.debug("clean undoredo Manager"); ! cmd.clean(); ! } } - } else { - CtuluLib.error("problem with undoredo manager"); } } --- 8,126 ---- */ package org.fudaa.fudaa.commun.undo; + import javax.swing.JInternalFrame; + import javax.swing.event.InternalFrameEvent; + import javax.swing.event.InternalFrameListener; import com.memoire.bu.BuCommonImplementation; import org.fudaa.dodico.commun.DodicoCmdMngListener; import org.fudaa.dodico.commun.DodicoCommandManager; /** * Class for undoredo manager with concurrent access + * * @author deniger * @version $Id$ */ ! public class FudaaUndoCmdMngListener implements DodicoCmdMngListener, InternalFrameListener { ! BuCommonImplementation impl_; + DodicoCommandManager cmdActif_; + /** ! * @param _impl l'impl parent */ public FudaaUndoCmdMngListener(BuCommonImplementation _impl) { ! impl_ = _impl; } ! ! ! /** ! * @see javax.swing.event.InternalFrameListener#internalFrameActivated(javax.swing.event.InternalFrameEvent) ! */ ! public void internalFrameActivated(InternalFrameEvent _e) { ! if (_e.getInternalFrame() instanceof FudaaUndoCmdMngContainer) { ! System.out.println("yes activated"); ! FudaaUndoCmdMngContainer c = (FudaaUndoCmdMngContainer) _e.getInternalFrame(); ! if (c.getCmdMng().getListener() != this) { ! c.getCmdMng().setListener(this); ! } ! setActive(c, true); } } ! ! /** ! * @see javax.swing.event.InternalFrameListener#internalFrameClosed(javax.swing.event.InternalFrameEvent) ! */ ! public void internalFrameClosed(InternalFrameEvent _e) { ! } ! ! /** ! * @see javax.swing.event.InternalFrameListener#internalFrameClosing(javax.swing.event.InternalFrameEvent) ! */ ! public void internalFrameClosing(InternalFrameEvent _e) { ! } ! ! /** ! * @see javax.swing.event.InternalFrameListener#internalFrameDeactivated(javax.swing.event.InternalFrameEvent) ! */ ! public void internalFrameDeactivated(InternalFrameEvent _evt) { ! if (_evt.getInternalFrame() instanceof FudaaUndoCmdMngContainer) { ! FudaaUndoCmdMngContainer c = (FudaaUndoCmdMngContainer) _evt.getInternalFrame(); ! setActive(c, false); } + else setActive(null, false); } + /** ! * @see javax.swing.event.InternalFrameListener#internalFrameDeiconified(javax.swing.event.InternalFrameEvent) ! */ ! public void internalFrameDeiconified(InternalFrameEvent _e) { ! } ! ! /** ! * @see javax.swing.event.InternalFrameListener#internalFrameIconified(javax.swing.event.InternalFrameEvent) ! */ ! public void internalFrameIconified(InternalFrameEvent _e) { ! } ! ! /** ! * @see javax.swing.event.InternalFrameListener#internalFrameOpened(javax.swing.event.InternalFrameEvent) ! */ ! public void internalFrameOpened(InternalFrameEvent _e) { ! } ! ! /** ! * @param _m la manager a activer ! * @param b le nouvel etat ! */ ! public void setActive(FudaaUndoCmdMngContainer _m, boolean b) { ! if (b && (_m != null) && (_m.getCmdMng() != null)) { ! impl_.setEnabledForAction("DEFAIRE", _m.getCmdMng().canUndo()); ! impl_.setEnabledForAction("REFAIRE", _m.getCmdMng().canRedo()); ! } else { ! impl_.setEnabledForAction("DEFAIRE", false); ! impl_.setEnabledForAction("REFAIRE", false); ! } ! if (_m != null) ! _m.setActive(b); ! if(b && (_m!=null)) cmdActif_=_m.getCmdMng(); ! else cmdActif_=null; ! } ! ! ! ! /** ! * @see org.fudaa.dodico.commun.DodicoCmdMngListener#undoredoStateChange(org.fudaa.dodico.commun.DodicoCommandManager) */ public void undoredoStateChange(DodicoCommandManager _source) { ! if(_source!=cmdActif_) return; ! impl_.setEnabledForAction("DEFAIRE", _source.canUndo()); ! impl_.setEnabledForAction("REFAIRE", _source.canRedo()); ! JInternalFrame[] fs = impl_.getAllInternalFrames(); ! if (fs != null) { ! for (int i = fs.length - 1; i >= 0; i--) { ! if (fs[i] instanceof FudaaUndoCmdMngContainer) { ! FudaaUndoCmdMngContainer c = (FudaaUndoCmdMngContainer) fs[i]; ! c.clearCmd(_source); } } } |