|
From: <de...@us...> - 2014-02-14 21:05:29
|
Revision: 8622
http://sourceforge.net/p/fudaa/svn/8622
Author: deniger
Date: 2014-02-14 21:05:26 +0000 (Fri, 14 Feb 2014)
Log Message:
-----------
Modified Paths:
--------------
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueCatchInteraction.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalquePoint.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueRepereInteraction.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-2d/src/main/java/org/fudaa/ebli/calque/ZModelPointAbstract.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiquePoint.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZScene.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneShowDistanceAction.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/SelectionMoveInteraction.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalqueDistanceInteraction.java
trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java
trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
Added Paths:
-----------
trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/curseur_accroche_move.png
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/BVueCalque.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -90,6 +90,11 @@
addMouseListener(this);
}
+ @Override
+ public void setCursor(Cursor cursor) {
+ super.setCursor(cursor);
+ }
+
private boolean checkBoite(final GrBoite _nouvBoite, final boolean _checkX, final boolean _checkY) {
final GrBoite bVue = getCalque().getDomaine();
if (bVue == null) {
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesAbstract.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -130,6 +130,11 @@
return modeleDonnees() != null;
}
+ @Override
+ public boolean canBeUsedForAccroche() {
+ return true;
+ }
+
protected Color getColorWithAttenuAlpha(Color init) {
if (isAttenue()) {
return EbliLib.getAlphaColor(attenueCouleur(init), alpha_);
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueAffichageDonneesInterface.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -83,7 +83,7 @@
* @return true : Si le calque peut \xEAtre rendu selectionnable
*/
public boolean canSetSelectable();
-
+
/**
* @return la boite zoomant sur la selection. Cette boite est la boite englobante
* augment\xE9e d'une marge.
@@ -250,4 +250,9 @@
boolean setLineModel(int _idx, final TraceLigneModel _model);
TraceLigneModel getLineModel(int _idx);
+
+ /**
+ * @return true si peut \xEAtre utilis\xE9 dans les accroche.
+ */
+ boolean canBeUsedForAccroche();
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueCatchInteraction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueCatchInteraction.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueCatchInteraction.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -8,6 +8,7 @@
*/
package org.fudaa.ebli.calque;
+import com.memoire.fu.FuEmptyArrays;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
@@ -15,6 +16,7 @@
import java.awt.event.MouseMotionListener;
import java.util.Arrays;
import java.util.HashSet;
+import org.fudaa.ctulu.CtuluLibArray;
import org.fudaa.ebli.geometrie.GrPoint;
/**
@@ -146,6 +148,10 @@
}
}
+ public boolean isSomethingCatched() {
+ return !CtuluLibArray.isEmpty(idxGeoms_);
+ }
+
/**
* Recherche les points a accrocher. Propose par defaut le plus en avant.
*
@@ -163,7 +169,7 @@
idxVertexOld = idxVertices_[iidxVertex_];
}
- selAccroch_ = scene_.selection(_pt.applique(getVersReel()), tolerancePixel_);
+ selAccroch_ = scene_.selectionForAccroche(_pt.applique(getVersReel()), tolerancePixel_);
idxGeoms_ = selAccroch_.getIdxSelected();
Arrays.sort(idxGeoms_);
@@ -290,6 +296,18 @@
}
}
+ @Override
+ public void setGele(boolean _gele) {
+ super.setGele(_gele);
+ if (_gele) {
+// bcatch_ = false;
+ fireCatchEvent(ZCatchEvent.UNCAUGHT, 0, 0);
+ idxGeoms_ = FuEmptyArrays.INT0;
+ idxVertices_ = FuEmptyArrays.INT0;
+ iidxGeom_ = -1;
+ }
+ }
+
/**
* Gere le SHIFT.<p>
* SHIFT : pour reactiver le mode d'accrochage
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueGeometry.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -1280,7 +1280,7 @@
if (_mode == SelectionMode.ATOMIC) {
for (int j = modele_.getNbPointForGeometry(i) - 1; j >= 0; j--) {
modele_.point(p, i, j);
- if (bClip.contientXY(p) && (p.distanceXY(_ptReel) < distanceReel)) {
+ if (bClip.contientXY(p) && (p.distanceXY(_ptReel) <= distanceReel)) {
if (sel == null) {
sel = new EbliListeSelectionMulti(1);
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalquePoint.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalquePoint.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalquePoint.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -25,6 +25,7 @@
import org.fudaa.ctulu.gis.GISGeometryFactory;
import org.fudaa.ctulu.gis.GISLib;
import org.fudaa.ebli.commun.EbliLib;
+import org.fudaa.ebli.commun.EbliListeSelectionMulti;
import org.fudaa.ebli.commun.EbliSelectionState;
import org.fudaa.ebli.geometrie.GrBoite;
import org.fudaa.ebli.geometrie.GrMorphisme;
@@ -310,12 +311,7 @@
protected void paintLabels(final Graphics2D g2d, int idx, GrPoint pEcran) {
}
-
-
-
-
-
protected TraceIcon getTraceIcon() {
final TraceIcon icone = iconModel_.buildCopy();
return icone;
@@ -534,6 +530,25 @@
}
@Override
+ public EbliListeSelectionMulti selectVertices(final GrPoint _ptReel, final int _tolerancePixel, boolean _inDepth) {
+ final CtuluListSelection selection = selection(_ptReel, _tolerancePixel);
+ if (selection == null || selection.isEmpty()) {
+ return null;
+ }
+ EbliListeSelectionMulti res = new EbliListeSelectionMulti(modele_.getNombre());
+ int nb = selection.getMaxIndex();
+ for (int i = selection.getMinIndex(); i <= nb; i++) {
+ if (selection.isSelected(i)) {
+ CtuluListSelection unitSelection = new CtuluListSelection(1);
+ unitSelection.add(0);
+ res.set(i, unitSelection);
+ }
+ }
+
+ return res;
+ }
+
+ @Override
public CtuluListSelection selection(final GrPoint _pt, final int _tolerance) {
return selectionBasic(_pt, _tolerance);
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueRepereInteraction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueRepereInteraction.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZCalqueRepereInteraction.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -1,8 +1,8 @@
/**
- * @creation 1 oct. 2003
- * @modification $Date: 2006-09-19 14:55:48 $
- * @license GNU General Public License 2
- * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
+ * @creation 1 oct. 2003
+ * @modification $Date: 2006-09-19 14:55:48 $
+ * @license GNU General Public License 2
+ * @copyright (c)1998-2001 CETMEF 2 bd Gambetta F-60231 Compiegne
*/
package org.fudaa.ebli.calque;
@@ -26,25 +26,45 @@
* @version $Id: ZCalqueRepereInteraction.java,v 1.18 2006-09-19 14:55:48 deniger Exp $
*/
public class ZCalqueRepereInteraction extends BCalqueInteraction implements MouseListener, MouseMotionListener,
- KeyListener {
+ KeyListener, ZCatchListener {
+
private Point pointDeb_, pointFinPrec_;
private final BVueCalque vc_;
private double coefZoomClick_ = 1.5; // Coefficient de zoom (AVANT/ARRIERE)
private final BGroupeCalque gcDonnees_;
+ private GrPoint ptAccroch_;
- public ZCalqueRepereInteraction(final BVueCalque _vc,BGroupeCalque _gcDonnees) {
+ public ZCalqueRepereInteraction(final BVueCalque _vc, BGroupeCalque _gcDonnees) {
super();
vc_ = _vc;
pointDeb_ = null;
pointFinPrec_ = null;
_vc.addKeyListener(this);
- gcDonnees_=_gcDonnees;
+ gcDonnees_ = _gcDonnees;
/*
* addMouseListener(this); addMouseMotionListener(this); addMouseWheelListener(this);
*/
}
-
+
@Override
+ public void catchChanged(ZCatchEvent _evt) {
+ if (isGele()) {
+ return;
+ }
+
+ if (_evt.type == ZCatchEvent.CAUGHT) {
+ ptAccroch_ = _evt.selection.getScene().getVertex(_evt.idxGeom, _evt.idxVertex);
+ } else {
+ ptAccroch_ = null;
+ }
+ }
+
+ @Override
+ public boolean isCachingEnabled() {
+ return !isGele();
+ }
+
+ @Override
public boolean alwaysPaint() {
return true;
}
@@ -53,7 +73,7 @@
public Cursor getSpecificCursor() {
return EbliResource.EBLI.getCursor("loupe-etendue", -1, new Point(8, 8));
}
-
+
@Override
public String getDescription() {
return EbliLib.getS("Zoom") + (zoomMoins_ ? " -" : " +");
@@ -61,9 +81,8 @@
/**
* Dessin de l'icone.
- *
- * @param _c composant dont l'icone peut deriver des proprietes (couleur, ...). Ce parametre peut etre <I>null</I>. Il
- * est ignore ici.
+ *
+ * @param _c composant dont l'icone peut deriver des proprietes (couleur, ...). Ce parametre peut etre <I>null</I>. Il est ignore ici.
* @param _g le graphics sur lequel dessiner l'icone
* @param _x lieu cible de l'icone (x)
* @param _y lieu cible de l'icone (y)
@@ -83,7 +102,7 @@
* Affectation du coefficient de zoom avant/arriere.
* <p>
* Ce coefficient est utilis\xE9 dans le zoom par simple clic.
- *
+ *
* @param _coef Le coefficient multiplicateur du zoom autre que 0. Si 0, il est d\xE9fini par d\xE9faut.
*/
public void setCoefficientZoom(final double _coef) {
@@ -96,7 +115,7 @@
/**
* Retour du coefficient de zoom avant/arriere.
- *
+ *
* @return La valeur du coefficient. <I>1.5</I> par d\xE9faut.
*/
public double getCoefficientZoom() {
@@ -105,7 +124,8 @@
// EVENEMENTS
@Override
- public void mouseClicked(final MouseEvent _evt) {}
+ public void mouseClicked(final MouseEvent _evt) {
+ }
@Override
public void mouseEntered(final MouseEvent _evt) {
@@ -119,31 +139,48 @@
@Override
public void mousePressed(final MouseEvent _evt) {
- if (!isOkLeftEvent(_evt)) { return; }
+ if (!isOkLeftEvent(_evt)) {
+ return;
+ }
gcDonnees_.setUseCache(true);
- pointDeb_ = _evt.getPoint();
+ if (ptAccroch_ != null) {
+ ptAccroch_ = ptAccroch_.applique(getVersEcran());
+ pointDeb_ = new Point((int) ptAccroch_.x_, (int) ptAccroch_.y_);
+ ptAccroch_ = null;
+ } else {
+ pointDeb_ = _evt.getPoint();
+ }
}
@Override
public void mouseReleased(final MouseEvent _evt) {
gcDonnees_.setUseCache(false);
- if (!isOkLeftEvent(_evt)) { return; }
+ if (!isOkLeftEvent(_evt)) {
+ return;
+ }
- if (pointDeb_ == null) { return; }
+ if (pointDeb_ == null) {
+ return;
+ }
GrPoint pointO;
GrPoint pointE;
if (pointDeb_.distance(_evt.getPoint()) > 7) {
final Point pointFin = _evt.getPoint();
+ if (ptAccroch_ != null) {
+ ptAccroch_ = ptAccroch_.applique(getVersEcran());
+ pointFin.x = (int) ptAccroch_.x_;
+ pointFin.y = (int) ptAccroch_.y_;
+ ptAccroch_ = null;
+ }
pointE = new GrPoint(Math.min(pointDeb_.x, pointFin.x), Math.max(pointDeb_.y, pointFin.y), 0.);
pointO = new GrPoint(Math.max(pointDeb_.x, pointFin.x), Math.min(pointDeb_.y, pointFin.y), 0.);
pointE.autoApplique(getVersReel());
pointO.autoApplique(getVersReel());
final GrBoite boite = new GrBoite(pointO, pointE);
vc_.changeRepere(this, boite);
- }
- // Zoom suivant le coefZoomClick_ et recentrage sur le point cliqu\xE9.
+ } // Zoom suivant le coefZoomClick_ et recentrage sur le point cliqu\xE9.
else {
vc_.zoomOnMouse(_evt);
}
@@ -176,10 +213,12 @@
pointFinPrec_ = pointFin;
repaint();
}
-
+
@Override
public void paintComponent(Graphics _g) {
- if (pointDeb_ == null|| pointFinPrec_==null) { return; }
+ if (pointDeb_ == null || pointFinPrec_ == null) {
+ return;
+ }
_g.setXORMode(getBackground());
_g.setColor(Color.black);
_g.drawLine(pointDeb_.x, pointDeb_.y, pointFinPrec_.x, pointDeb_.y);
@@ -189,7 +228,8 @@
}
@Override
- public void mouseMoved(final MouseEvent _evt) {}
+ public void mouseMoved(final MouseEvent _evt) {
+ }
private boolean zoomMoins_;
@@ -215,5 +255,6 @@
}
@Override
- public void keyTyped(final KeyEvent _e) {}
+ public void keyTyped(final KeyEvent _e) {
+ }
}
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 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquePanelController.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -53,13 +53,17 @@
/**
* 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.
+ * 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$
*/
public class ZEbliCalquePanelController implements TreeSelectionListener, PropertyChangeListener {
+
/**
* Identifiant pour les propri\xE9t\xE9s concernant l'\xE9tat d'un calque d'interaction.
*/
@@ -181,13 +185,13 @@
final EbliActionPaletteAbstract plAction = new EbliActionPaletteAbstract(EbliLib.getS("Rep\xE8re"),
EbliResource.EBLI.getIcon("repere"),
"CHANGE_REFERENCE") {
- @Override
- public JComponent buildContentPane() {
- final BControleRepereTexte crt = new BControleRepereTexte(pn_.getVueCalque());
- crt.addRepereEventListener(pn_.getVueCalque());
- return crt;
- }
- };
+ @Override
+ public JComponent buildContentPane() {
+ final BControleRepereTexte crt = new BControleRepereTexte(pn_.getVueCalque());
+ crt.addRepereEventListener(pn_.getVueCalque());
+ return crt;
+ }
+ };
plAction.setParent(pn_);
plAction.putValue(Action.SHORT_DESCRIPTION, EbliLib.getS("Transformations du rep\xE8re"));
return plAction;
@@ -205,11 +209,11 @@
// RESTORE ACTION
final EbliActionSimple restore = new EbliActionSimple(EbliLib.getS("Restaurer"), EbliResource.EBLI.getIcon("restore"),
"RESTORE") {
- @Override
- public void actionPerformed(ActionEvent _arg) {
- pn_.restaurer();
- }
- };
+ @Override
+ public void actionPerformed(ActionEvent _arg) {
+ pn_.restaurer();
+ }
+ };
restore.putValue(Action.SHORT_DESCRIPTION, EbliLib.getS("Restaurer la vue globale"));
restore.putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('r'));
restore.putValue(EbliActionInterface.SECOND_KEYSTROKE, KeyStroke.getKeyStroke(KeyEvent.VK_F5, 0));
@@ -227,11 +231,11 @@
navigationActionGroup_[i] = new EbliActionSimple(EbliLib.getS("Derni\xE8re vue"), EbliResource.EBLI.getIcon("zoom-previous"),
"LAST_VIEW") {
- @Override
- public void actionPerformed(final ActionEvent _arg) {
- pn_.getVueCalque().undoRepere();
- }
- };
+ @Override
+ public void actionPerformed(final ActionEvent _arg) {
+ pn_.getVueCalque().undoRepere();
+ }
+ };
navigationActionGroup_[i].putValue(Action.ACCELERATOR_KEY, KeyStroke.getKeyStroke('y'));
navigationActionGroup_[i++].setDefaultToolTip(EbliLib.getS("Retourner \xE0 la derni\xE8re vue"));
// action.putValue(Action.MNEMONIC_KEY, new Int);
@@ -248,11 +252,11 @@
// NAVIGATION
final EbliActionPaletteAbstract plAction = new EbliActionPaletteAbstract(EbliLib.getS("Navigation"),
EbliResource.EBLI.getIcon("navigation"), "NAVIGATE") {
- @Override
- public JComponent buildContentPane() {
- return new ZTransformationDomaine(pn_.getVueCalque());
- }
- };
+ @Override
+ public JComponent buildContentPane() {
+ return new ZTransformationDomaine(pn_.getVueCalque());
+ }
+ };
plAction.setParent(pn_);
plAction.setResizable(true);
plAction.putValue(Action.SHORT_DESCRIPTION, EbliLib.getS("Outil de navigation"));
@@ -307,11 +311,11 @@
EbliActionPaletteAbstract ebliActionPaletteAbstract = new EbliActionPaletteAbstract(EbliLib.getS("L\xE9gende"),
EbliResource.EBLI.getToolIcon("legend"),
"EDIT_LEGEND", true) {
- @Override
- public JComponent buildContentPane() {
- return new BCalqueLegendeCustomizer(getView().getCqLegend());
- }
- };
+ @Override
+ public JComponent buildContentPane() {
+ return new BCalqueLegendeCustomizer(getView().getCqLegend());
+ }
+ };
ebliActionPaletteAbstract.setParent(pn_);
l.add(ebliActionPaletteAbstract);
l.add(new BConfigurePaletteAction(getView().getArbreCalqueModel().getTreeSelectionModel()));
@@ -384,8 +388,7 @@
}
/**
- * Modifie la propriete
- * <code>enable</code> de tous les boutons du groupe selection.
+ * Modifie la propriete <code>enable</code> de tous les boutons du groupe selection.
*
* @param _enable
*/
@@ -837,9 +840,9 @@
}
/**
- * 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).
+ * 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).
*
* @param _evt
*/
@@ -863,6 +866,7 @@
public ZEbliCalquesPanel getPn() {
return pn_;
}
+
public List<EbliActionInterface> getSelectedNavigationAndStandardActionGroup() {
final List<EbliActionInterface> actions = new ArrayList<EbliActionInterface>();
if (this.selectedActionGroup_ == null) {
@@ -986,47 +990,12 @@
if (isCachingDisable()) {
return;
}
-
pn_.getVueCalque().setCursor(_evt.type == ZCatchEvent.CAUGHT ? CURSOR_ACC : cqInteractionActif_.getSpecificCursor());
if (_evt.type == ZCatchEvent.CAUGHT) {
- GrPoint pt = _evt.selection.getScene().getVertex(_evt.idxGeom, _evt.idxVertex);
-
- String idxGeom = "" + (_evt.selection.getScene().sceneId2LayerId(_evt.idxGeom) + 1);
- String idxVertex = "" + (_evt.idxVertex + 1);
- String cqName = _evt.selection.getScene().getLayerForId(_evt.idxGeom).getTitle();
- String x;
- String y;
- String z;
- String xname;
- String yname;
- String zname;
- EbliCoordinateDefinition[] defs = getCoordinateDefinitions();
- if (defs != null) {
- x = defs[0].getFormatter().getXYFormatter().format(pt.x_);
- y = defs[1].getFormatter().getXYFormatter().format(pt.y_);
- z = defs[2].getFormatter().getXYFormatter().format(pt.z_);
-
- xname = defs[0].getName();
- yname = defs[1].getName();
- zname = defs[2].getName();
- } else {
- x = "" + pt.x_;
- y = "" + pt.y_;
- z = "" + pt.z_;
-
- xname = "X";
- yname = "Y";
- zname = "Z";
- }
-
- String[] vars = {cqName, idxGeom, idxVertex, xname, x, yname, y, zname, z};
- String text =
- 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);
+ pn_.setAccrocheText(_evt);
} else {
- pn_.unsetInfoText();
+ pn_.unsetAcrrocheText();
}
}
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 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZEbliCalquesPanel.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -508,7 +508,54 @@
infoTextSelectionUpdated();
}
+ public void setAccrocheText(ZCatchEvent _evt) {
+ GrPoint pt = _evt.selection.getScene().getVertex(_evt.idxGeom, _evt.idxVertex);
+
+ String idxGeom = "" + (_evt.selection.getScene().sceneId2LayerId(_evt.idxGeom) + 1);
+ String idxVertex = "" + (_evt.idxVertex + 1);
+ String cqName = _evt.selection.getScene().getLayerForId(_evt.idxGeom).getTitle();
+ String x;
+ String y;
+ String z;
+ String xname;
+ String yname;
+ String zname;
+ EbliCoordinateDefinition[] defs = getCoordinateDefinitions();
+ if (defs != null) {
+ x = defs[0].getFormatter().getXYFormatter().format(pt.x_);
+ y = defs[1].getFormatter().getXYFormatter().format(pt.y_);
+ z = defs[2].getFormatter().getXYFormatter().format(pt.z_);
+
+ xname = defs[0].getName();
+ yname = defs[1].getName();
+ zname = defs[2].getName();
+ } else {
+ x = "" + pt.x_;
+ y = "" + pt.y_;
+ z = "" + pt.z_;
+
+ xname = "X";
+ yname = "Y";
+ zname = "Z";
+ }
+
+ String[] vars = {cqName, idxGeom, idxVertex, xname, x, yname, y, zname, z};
+ setAccrocheText(vars);
+ }
+
+ public void setAccrocheText(String[] vars) {
+ String text
+ = EbliResource.EBLI.getString(
+ "Accroche : Calque={0} Geom={1} Sommet={2} {3}={4} {5}={6} {7}={8} (n:Suivant, u:D\xE9crocher)", vars);
+ setInfoText(text);
+ }
+
+ public void unsetAcrrocheText() {
+ unsetInfoText();
+ }
+
public void setInfoText(final String _s) {
+
if (CtuluLibString.isEmpty(_s)) {
unsetInfoText();
} else {
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModelPointAbstract.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModelPointAbstract.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModelPointAbstract.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -29,6 +29,13 @@
}
@Override
+ public GrPoint getVertexForObject(int _ind, int vertex) {
+ GrPoint p = new GrPoint();
+ point(p, _ind, true);
+ return p;
+ }
+
+ @Override
public BuTable createValuesTable(final ZCalqueAffichageDonneesInterface _layer){
final BuTable res = new BuTable();
res.setModel(new ZCalquePoint.DefaultTableModel(this));
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiqueImageRaster.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -176,6 +176,13 @@
}
@Override
+ public GrPoint getVertexForObject(int _ind, int vertex) {
+ GrPoint p = new GrPoint();
+ point(p, _ind, true);
+ return p;
+ }
+
+ @Override
protected ZModeleStatiqueImageRaster clone() {
try {
ZModeleStatiqueImageRaster cloned = (ZModeleStatiqueImageRaster) super.clone();
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiquePoint.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiquePoint.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZModeleStatiquePoint.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -41,6 +41,13 @@
}
@Override
+ public GrPoint getVertexForObject(int _ind, int vertex) {
+ GrPoint p = new GrPoint();
+ point(p, _ind, true);
+ return p;
+ }
+
+ @Override
public double getX(final int _i){
return points_[_i].x_;
}
@@ -160,8 +167,4 @@
}
// public final boolean contourSelectionnable(int _i) { return true; }
- @Override
- public GrPoint getVertexForObject(int _ind, int vertex) {
- return point(_ind);
- }
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZScene.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZScene.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/ZScene.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -686,6 +686,19 @@
return selTmp_;
}
+ public ZSceneSelection selectionForAccroche(final GrPoint _pt, final int _tolerance) {
+ selTmp_.clear();
+ for (ZCalqueAffichageDonneesInterface cq : getTargetLayers()) {
+ if (cq.canBeUsedForAccroche()) {
+ EbliListeSelectionMulti sel = (EbliListeSelectionMulti) cq.selectVertices(_pt, _tolerance, true);
+ if (sel != null) {
+ selTmp_.addLayerListSelectionMulti(cq, sel);
+ }
+ }
+ }
+ return selTmp_;
+ }
+
/**
* Retourne le sommet 3D correspondant a l'indice de geometrie _idScene et l'indice de sommet _idVertex.
*
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneShowDistanceAction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneShowDistanceAction.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/action/SceneShowDistanceAction.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -22,9 +22,8 @@
import org.fudaa.ebli.ressource.EbliResource;
/**
- * Une action pour afficher une palette indiquant la distance entre une s\xE9rie de
- * points.
- *
+ * Une action pour afficher une palette indiquant la distance entre une s\xE9rie de points.
+ *
* @author Emmanuel MARTIN
* @version $Id$
*/
@@ -32,20 +31,22 @@
private ZEbliCalquesPanel calquesPanel_;
// Calque ne fermant pas l'edition \\
- private BCalqueInteraction calqueZoom_;
+ private BCalqueInteraction calqueZoom_;
private BCalqueInteraction calqueDeplacementVue_;
- /** Le calque contenant les informations de distance. */
+ /**
+ * Le calque contenant les informations de distance.
+ */
private ZCalqueDistanceInteraction calqueDistance_;
protected EbliFormatterInterface formatter_;
- public SceneShowDistanceAction(final ZEditorDefault _editor, EbliFormatterInterface _formatter) {
+ public SceneShowDistanceAction(final ZEditorDefault _editor, EbliFormatterInterface _formatter) {
super(EbliLib.getS("Distance"), EbliResource.EBLI.getToolIcon("bu_scrollpane_corner"), "PALETTE_DISTANCE");
- formatter_=_formatter;
- calquesPanel_=_editor.getPanel();
+ formatter_ = _formatter;
+ calquesPanel_ = _editor.getPanel();
calquesPanel_.getController().addPropertyChangeListener("gele", this);
- calqueZoom_=calquesPanel_.getController().getCalqueInteraction("cqAGRANDIR");
- calqueDeplacementVue_=calquesPanel_.getController().getCalqueInteraction("cqDEPLACEMENT_VUE-I");
- calqueDistance_=new ZCalqueDistanceInteraction();
+ calqueZoom_ = calquesPanel_.getController().getCalqueInteraction("cqAGRANDIR");
+ calqueDeplacementVue_ = calquesPanel_.getController().getCalqueInteraction("cqDEPLACEMENT_VUE-I");
+ calqueDistance_ = new ZCalqueDistanceInteraction();
calqueDistance_.setGele(true);
calquesPanel_.addCalqueInteraction(calqueDistance_);
calqueDistance_.addPropertyChangeListener("gele", this);
@@ -56,13 +57,15 @@
@Override
public void changeAction() {
super.changeAction();
- if (isSelected())
+ if (isSelected()) {
calquesPanel_.setCalqueInteractionActif(calqueDistance_);
- else{
+ calquesPanel_.getVueCalque().requestFocus();
+ } else {
calqueDistance_.cancelEdition();
calquesPanel_.unsetCalqueInteractionActif(calqueDistance_);
- if (calquesPanel_.getController().getCqSelectionI()!=null)
+ if (calquesPanel_.getController().getCqSelectionI() != null) {
calquesPanel_.getController().getCqSelectionI().setGele(false);
+ }
}
}
@@ -75,8 +78,8 @@
public void propertyChange(PropertyChangeEvent _evt) {
// Cas un autre calque que celui du zoom, du deplacement de vue et d'edition
// est d\xE9gel\xE9 donc on ferme le pannel d'edition si il \xE9tait ouvert.
- if (_evt.getSource()!=calqueZoom_&&_evt.getSource()!=calqueDeplacementVue_&&_evt.getSource()!=calqueDistance_
- &&!((Boolean)_evt.getNewValue()).booleanValue()&&isSelected()) {
+ if (_evt.getSource() != calqueZoom_ && _evt.getSource() != calqueDeplacementVue_ && _evt.getSource() != calqueDistance_
+ && !((Boolean) _evt.getNewValue()).booleanValue() && isSelected()) {
calqueDistance_.cancelEdition();
setSelected(false);
super.changeAction();
@@ -86,7 +89,8 @@
@Override
public void internalFrameClosing(InternalFrameEvent e) {
calqueDistance_.cancelEdition();
- if (calquesPanel_.getController().getCqSelectionI()!=null)
+ if (calquesPanel_.getController().getCqSelectionI() != null) {
calquesPanel_.getController().getCqSelectionI().setGele(false);
+ }
}
-}
\ No newline at end of file
+}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/SelectionMoveInteraction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/SelectionMoveInteraction.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/SelectionMoveInteraction.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -4,26 +4,33 @@
package org.fudaa.ebli.calque.edition;
import java.awt.Cursor;
+import java.awt.Point;
import java.awt.event.MouseEvent;
import org.fudaa.ctulu.CtuluListSelection;
import org.fudaa.ctulu.gis.GISZoneCollection;
import org.fudaa.ebli.calque.ZCalqueAffichageDonnees;
import org.fudaa.ebli.calque.ZCalqueAffichageDonneesInterface;
import org.fudaa.ebli.calque.ZCalqueSelectionInteractionSimple;
+import org.fudaa.ebli.calque.ZCatchEvent;
+import org.fudaa.ebli.calque.ZCatchListener;
+import org.fudaa.ebli.calque.ZEbliCalquePanelController;
import org.fudaa.ebli.calque.ZEbliCalquesPanel;
import org.fudaa.ebli.commun.EbliListeSelectionMulti;
import org.fudaa.ebli.commun.EbliListeSelectionMultiInterface;
import org.fudaa.ebli.geometrie.GrPoint;
+import org.fudaa.ebli.ressource.EbliResource;
/**
*
* @author Frederic Deniger
*/
-public class SelectionMoveInteraction extends ZCalqueSelectionInteractionSimple {
+public class SelectionMoveInteraction extends ZCalqueSelectionInteractionSimple implements ZCatchListener {
private final ZEbliCalquesPanel pn;
ZCalqueDeplacementInteraction deplacement;
+ public static final Cursor CURSOR_ACC_MOVE = EbliResource.EBLI.getCursor("curseur_accroche_move", -1, new Point(1, 1));
+
public SelectionMoveInteraction(ZEbliCalquesPanel panel) {
super(panel.getGcDonnees());
this.pn = panel;
@@ -44,6 +51,17 @@
}
@Override
+ public boolean isCachingEnabled() {
+ return !isGele();
+ }
+
+ @Override
+ public void catchChanged(ZCatchEvent _evt) {
+ super.catchChanged(_evt);
+ deplacement.catchChanged(_evt);
+ }
+
+ @Override
public void setEditor(ZEditorDefault _editor) {
super.setEditor(_editor);
deplacement.setTarget(_editor);
@@ -164,6 +182,18 @@
return;
}
movable = isMovable(e.getX(), e.getY());
- pn.getVueCalque().setCursor(movable ? deplacement.getSpecificCursor() : getSpecificCursor());
+// pn.getVueCalque().setCursor(deplacement.getSpecificCursor());
+ pn.getVueCalque().setCursor(getAccrocheSpecificCursor());
}
+
+// @Override
+ public Cursor getAccrocheSpecificCursor() {
+ if (idxGeomAccroch_ == null) {
+ return movable ? deplacement.getSpecificCursor() : getSpecificCursor();
+ }
+ if (movable) {
+ return CURSOR_ACC_MOVE;
+ }
+ return ZEbliCalquePanelController.CURSOR_ACC;
+ }
}
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalqueDistanceInteraction.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalqueDistanceInteraction.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZCalqueDistanceInteraction.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -262,7 +262,7 @@
if (isGele()) return;
if (_evt.type==ZCatchEvent.CAUGHT) {
- ptAccroch_=_evt.selection.getScene().getVertex(_evt.idxGeom,_evt.idxVertex);
+ ptAccroch_ = _evt.selection.getScene().getVertex(_evt.idxGeom, _evt.idxVertex);
}
else {
ptAccroch_=null;
Modified: trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java
===================================================================
--- trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-2d/src/main/java/org/fudaa/ebli/calque/edition/ZModelePointEditable.java 2014-02-14 21:05:26 UTC (rev 8622)
@@ -96,6 +96,13 @@
}
@Override
+ public GrPoint getVertexForObject(int _ind, int vertex) {
+ GrPoint p = new GrPoint();
+ point(p, _ind, true);
+ return p;
+ }
+
+ @Override
public boolean isDataValid(CoordinateSequence _seq, ZEditionAttributesDataI _data, CtuluAnalyze _ana) {
return true;
}
Added: trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/curseur_accroche_move.png
===================================================================
(Binary files differ)
Index: trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/curseur_accroche_move.png
===================================================================
--- trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/curseur_accroche_move.png 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/curseur_accroche_move.png 2014-02-14 21:05:26 UTC (rev 8622)
Property changes on: trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/curseur_accroche_move.png
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt
===================================================================
--- trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2014-02-14 12:12:28 UTC (rev 8621)
+++ trunk/framework/ebli-common/src/main/resources/org/fudaa/ebli/ressource/ebli_en.fr_txt 2014-02-14 21:05:26 UTC (rev 8622)
@@ -39,6 +39,7 @@
Accrochage=Hanging
Accroche \: Calque\={0} Geom\={1} Sommet\={2} {3}\={4} {5}\={6} {7}\={8} (n\:Suivant, u\:D\xE9crocher)=Hang \: Layer\={0} Geom\={1} Vertex\={2} {3}\={4} {5}\={6} {7}\={8} (n\:Next, u\:Unhang)
Accroche suivant Z=Hang for Z
+Accroche \: Calque={0} Geom\={1} Sommet\={2}
Actif=Active
Action=Action
Activer la grille r\xE9guli\xE8re=Enable regular grid
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|