From: <bma...@us...> - 2011-12-04 18:30:33
|
Revision: 6781 http://fudaa.svn.sourceforge.net/fudaa/?rev=6781&view=rev Author: bmarchan Date: 2011-12-04 18:30:26 +0000 (Sun, 04 Dec 2011) Log Message: ----------- Add : Bouton d'animation pour les r?\195?\169sultats Modified Paths: -------------- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2011-12-04 18:23:09 UTC (rev 6780) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivImplementation.java 2011-12-04 18:30:26 UTC (rev 6781) @@ -851,6 +851,44 @@ */ @Override public void start() { +// ((JFrame)getFrame()).setTransferHandler(new TransferHandler() { +// +// @Override +// public boolean canImport(TransferSupport support) { +// for (DataFlavor df : support.getDataFlavors()) { +// if (df.equals(DataFlavor.javaFileListFlavor)) { +// return true; +// } +// } +// return false; +// } +// +// /** +// * L'importation de donn\xE9es. +// */ +// @Override +// public boolean importData(TransferSupport support) { +// if (canImport(support)) { +// try { +// List<File> files = (List<File>) support.getTransferable().getTransferData(DataFlavor.javaFileListFlavor); +// if (files.size() > 1) { +// error(PivResource.getS("Un seul fichier projet est autoris\xE9 pour le transfert")); +// return false; +// } +// ouvrir(files.get(0)); +// return true; +// } +// catch (UnsupportedFlavorException ufe) { +// ufe.printStackTrace(); +// } +// catch (IOException ioe) { +// ioe.printStackTrace(); +// } +// } +// return false; +// } +// }); + super.start(); super.addFrameListLeft(); Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2011-12-04 18:23:09 UTC (rev 6780) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivRealView.java 2011-12-04 18:30:26 UTC (rev 6781) @@ -15,16 +15,20 @@ import java.util.List; import java.util.Map; +import javax.swing.AbstractButton; import javax.swing.BorderFactory; import javax.swing.JComponent; import javax.units.SI; +import org.fudaa.ebli.animation.EbliAnimationAction; +import org.fudaa.ebli.animation.EbliAnimationAdapterInterface; import org.fudaa.ebli.calque.BCalqueAffichage; import org.fudaa.ebli.calque.ZCalqueFleche; import org.fudaa.ebli.calque.dessin.DeForme; import org.fudaa.ebli.calque.edition.ZCalqueLigneBriseeEditable; import org.fudaa.ebli.calque.edition.ZCalqueMultiPointEditable; import org.fudaa.ebli.commun.EbliActionAbstract; +import org.fudaa.ebli.commun.EbliComponentFactory; import org.fudaa.ebli.commun.EbliCoordinateDefinition; import org.fudaa.ebli.commun.EbliFormatter; import org.fudaa.ebli.commun.EbliUIProperties; @@ -71,6 +75,8 @@ private BuComboBox cbImg_; private BuTransparentToggleButton btLock_; private BuComboBox cbVel_; + private EbliAnimationAction actAnim_; + private AbstractButton btAnim_; private PivProject prj_; private List<BCalqueAffichage> layers_=new ArrayList<BCalqueAffichage>(); @@ -94,6 +100,37 @@ PivFlowResultsModel mdlFlowResults; PivInstantVelResultsModel mdlInstantVelResults; + /** + * Une classe de d\xE9finition de la s\xE9quence d'animation. + * @author Bertrand Marchand (mar...@de...) + */ + class SequenceAnimationAdapter implements EbliAnimationAdapterInterface { + + @Override + public int getNbTimeStep() { + return prj_.getTransfImageFiles().length; + } + + @Override + public String getTimeStep(int _idx) { + return prj_.getTransfImageFiles()[_idx].getName(); + } + + @Override + public double getTimeStepValueSec(int _idx) { + return _idx; + } + + @Override + public void setTimeStep(int _idx) { + cbImg_.setSelectedIndex(_idx); + } + + @Override + public String getTitle() { + return cqInstantVelResults_.getTitle(); + } + } /** * Constructeur. @@ -289,6 +326,11 @@ * Construction des outils sp\xE9cifiques \xE0 cette vue. */ private void buildTools() { + // Le bouton d'animation + actAnim_=new EbliAnimationAction(pnLayers_.createAnimSource()); + btAnim_=actAnim_.buildToolButton(EbliComponentFactory.INSTANCE); + btAnim_.setEnabled(true); + // La liste d\xE9roulante des images cbImg_ = new BuComboBox(); cbImg_.addItemListener(new ItemListener() { @@ -364,6 +406,9 @@ * Mise a jour les outils. */ private void majTools() { + // Force la mise a jour du composant d'animation + actAnim_.setAnimAdapterInterface(new SequenceAnimationAdapter()); + Object itImgSel=cbImg_.getSelectedItem(); cbImg_.removeAllItems(); cbImg_.setEnabled(false); @@ -436,7 +481,7 @@ @Override public JComponent[] getSpecificTools() { - return new JComponent[]{cbImg_,btLock_,cbVel_}; + return new JComponent[]{btAnim_,cbImg_,btLock_,cbVel_}; } @Override Modified: trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java =================================================================== --- trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2011-12-04 18:23:09 UTC (rev 6780) +++ trunk/soft/fudaa-lspiv/src/main/java/org/fudaa/fudaa/piv/PivVisuPanel.java 2011-12-04 18:30:26 UTC (rev 6781) @@ -11,18 +11,20 @@ import java.util.HashMap; import java.util.Map; +import javax.swing.AbstractButton; import javax.swing.Action; import javax.swing.JComponent; import javax.swing.JMenu; import org.fudaa.ctulu.gis.GISAttributeDouble; import org.fudaa.ctulu.gis.GISAttributeString; +import org.fudaa.ebli.animation.EbliAnimationSourceInterface; import org.fudaa.ebli.calque.BCalqueAffichage; import org.fudaa.ebli.calque.ZEbliCalquesPanel; import org.fudaa.ebli.calque.edition.ZCalqueEditionInteraction; -import org.fudaa.ebli.calque.edition.ZEditorDefault; import org.fudaa.ebli.commun.EbliActionAbstract; import org.fudaa.ebli.commun.EbliActionInterface; +import org.fudaa.ebli.commun.EbliActionPaletteAbstract; import org.fudaa.ebli.commun.EbliUIProperties; import org.fudaa.ebli.trace.TraceIcon; import org.fudaa.ebli.trace.TraceIconModel; @@ -36,6 +38,7 @@ import org.fudaa.fudaa.piv.action.PivShowVelocityAction; import org.fudaa.fudaa.piv.metier.PivProject; +import com.memoire.bu.BuDesktop; import com.memoire.bu.BuSpecificBar; /** @@ -302,6 +305,14 @@ return cqEdition_; } + /** + * Cr\xE9e un source pour l'animation. + * @return La source + */ + public EbliAnimationSourceInterface createAnimSource() { + return new AnimAdapter(); + } + protected PivViewI getCurrentView() { return getViews()[viewMode_]; } @@ -439,7 +450,18 @@ } public JComponent[] getSpecificTools() { - return getCurrentView().getSpecificTools(); + BuDesktop desk=((PivImplementation)getCtuluUI()).getMainPanel().getDesktop(); + + JComponent[] cps=getCurrentView().getSpecificTools(); + for (JComponent cp : cps) { + if (cp instanceof AbstractButton) { + AbstractButton bt=(AbstractButton)cp; + if (bt.getAction() instanceof EbliActionPaletteAbstract) { + ((EbliActionPaletteAbstract)bt.getAction()).setDesktop(desk); + } + } + } + return cps; } /** This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |