/*************************************************** * * cismet GmbH, Saarbruecken, Germany * * ... and it just works. * ****************************************************/ /* * HandleDeleteAction.java * * Created on 11. Dezember 2007, 09:14 * * To change this template, choose Tools | Template Manager * and open the template in the editor. */ package de.cismet.cismap.commons.gui.piccolo.eventlistener.actions; import de.cismet.cismap.commons.features.Feature; import de.cismet.cismap.commons.gui.MappingComponent; import de.cismet.cismap.commons.gui.piccolo.PFeature; /** * Implementiert das CustomAction-Interface und wird von der Memento-Klasse verwendet, um ein dupliziertes Handle wieder * zu entfernen. * * @author nh * @version $Revision$, $Date$ */ public class HandleDeleteAction implements CustomAction { //~ Instance fields -------------------------------------------------------- private final MappingComponent mc; private final Feature feature; private final int entityPosition; private final int ringPosition; private final int coordPosition; private final float x; private final float y; // wird nur f\u00FCr getInverse() ben\u00F6tigt //~ Constructors ----------------------------------------------------------- /** * Erzeugt eine HandleDeleteAction-Instanz. * * @param mc DOCUMENT ME! * @param feature DOCUMENT ME! * @param entityPosition DOCUMENT ME! * @param ringPosition DOCUMENT ME! * @param coordPosition DOCUMENT ME! * @param x DOCUMENT ME! * @param y DOCUMENT ME! */ public HandleDeleteAction(final MappingComponent mc, final Feature feature, final int entityPosition, final int ringPosition, final int coordPosition, final float x, final float y) { this.mc = mc; this.feature = feature; this.entityPosition = entityPosition; this.ringPosition = ringPosition; this.coordPosition = coordPosition; this.x = x; this.y = y; } //~ Methods ---------------------------------------------------------------- /** * L\u00F6scht das PHandle und dessen Koordinate aus den Arrays. */ @Override public void doAction() { final PFeature pf = (PFeature)mc.getPFeatureHM().get(feature); pf.removeCoordinate(entityPosition, ringPosition, coordPosition, false); } /** * Liefert eine Beschreibung der Aktion als String. * * @return Beschreibungsstring */ @Override public String info() { return org.openide.util.NbBundle.getMessage( HandleDeleteAction.class, "HandleDeleteAction.info().return", new Object[] { coordPosition, x, y }); // NOI18N } /** * Liefert als Gegenteil die Anlegeaktion des Handles. * * @return HandleAddAction */ @Override public CustomAction getInverse() { return new HandleAddAction(mc, feature, entityPosition, ringPosition, coordPosition, x, y); } @Override public boolean featureConcerned(final Feature feature) { return (feature != null) && feature.equals(feature); } }