@Override public void activate() { super.activate(); pictogramContainerFigure = new PictogramContainerFigure(); for (final Pictogram pictogram : getPictograms()) { final PictogramFigure pictogramFigure = new PictogramFigure(pictogram, getHost().getFigure()); pictogramFigures.put(pictogram, pictogramFigure); pictogramContainerFigure.add(pictogramFigure); figureListeners.put( pictogramFigure, new MouseListener() { public void mouseDoubleClicked(final MouseEvent event) {} public void mousePressed(final MouseEvent event) { executePictogramHandler(pictogram, event); } public void mouseReleased(final MouseEvent event) {} }); pictogramFigure.addMouseListener(figureListeners.get(pictogramFigure)); } // add pictogram figure to layer, keep it attached to the original // figure using a locator getFeedbackLayer().add(pictogramContainerFigure); registerFigureListener(hostFigureListener); registerAncestorListener(hostFigureAncestorListener); registerSemanticModelListener(modelListener); registerGraphModelListener(modelListener); layoutPictogramContainer(); if (getHost().resolveSemanticElement() != null) { updatePictogramFigureStates(); } }
@Override public void deactivate() { unregisterGraphModelListener(modelListener); unregisterSemanticModelListener(modelListener); unregisterFigureListener(hostFigureListener); unregisterAncestorListener(hostFigureAncestorListener); getFeedbackLayer().remove(pictogramContainerFigure); for (final Pictogram pictogram : getPictograms()) { final PictogramFigure pictogramFigure = pictogramFigures.get(pictogram); pictogramFigure.removeMouseListener(figureListeners.get(pictogramFigure)); } super.deactivate(); }