VLab Issue #5413 - Changes for PGEN in D2D for mouse click
commit 1a7bd6cd64d629e6e01b287cfa60b36bac081813 Author: Bingfan Yin <Bingfan.Yin@noaa.gov> Date: Mon Dec 15 08:45:20 2014 -0500 Set perspective ID in PGEN session from palette. commit bef2feeccf0adfa36ab578a35ecf6f48d604eaf0 Author: Bingfan Yin <Bingfan.Yin@noaa.gov> Date: Mon Dec 15 08:28:44 2014 -0500 Changes to resolve mouse conflicts for PGEN in D2D. Also prevent PGEN showing in other perspectives if PGEN is in single mode. Fixed the PGEN symbol size issue when swapping in D2D. Change-Id: Ie90747ce84a88c967da494fe90045eedd44ab50c Former-commit-id:ff58674259
[formerly a87c0d2064fa325fd8f550b37734aa9ca63c1f9e] Former-commit-id:eee0d49bde
This commit is contained in:
parent
1b6aa1eac1
commit
8714ace477
48 changed files with 1842 additions and 1186 deletions
|
@ -27,12 +27,20 @@ import org.eclipse.ui.IWorkbenchPartReference;
|
|||
import org.eclipse.ui.PlatformUI;
|
||||
import org.eclipse.ui.internal.WorkbenchPage;
|
||||
|
||||
import com.raytheon.uf.common.status.IUFStatusHandler;
|
||||
import com.raytheon.uf.common.status.UFStatus;
|
||||
import com.raytheon.uf.common.status.UFStatus.Priority;
|
||||
import com.raytheon.uf.viz.core.IDisplayPane;
|
||||
import com.raytheon.uf.viz.core.IRenderableDisplayChangedListener;
|
||||
import com.raytheon.uf.viz.core.drawables.IRenderableDisplay;
|
||||
import com.raytheon.uf.viz.core.drawables.ResourcePair;
|
||||
import com.raytheon.uf.viz.core.maps.display.VizMapEditor;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceList;
|
||||
import com.raytheon.viz.ui.editor.AbstractEditor;
|
||||
import com.raytheon.viz.ui.editor.IMultiPaneEditor;
|
||||
import com.raytheon.viz.ui.perspectives.AbstractVizPerspectiveManager;
|
||||
import com.raytheon.viz.ui.perspectives.VizPerspectiveListener;
|
||||
|
||||
/**
|
||||
* This singleton is intended to couple a PGEN Palette with a PGgenResource, so
|
||||
|
@ -50,10 +58,12 @@ import com.raytheon.viz.ui.editor.IMultiPaneEditor;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* 12/14 R5413 B. Yin Added IPartListener2 and IRenderableDisplayChangedListener
|
||||
* to make the swapping in D2D work
|
||||
* to make the swapping in D2D work
|
||||
* 12/14 R5413 B. Yin Added exception handling, perspective id, and endSession.
|
||||
*
|
||||
*/
|
||||
|
||||
@SuppressWarnings("restriction")
|
||||
public class PgenSession implements IPartListener2,
|
||||
IRenderableDisplayChangedListener {
|
||||
|
||||
|
@ -79,11 +89,19 @@ public class PgenSession implements IPartListener2,
|
|||
*/
|
||||
private AbstractPgenTool pgenTool = null;
|
||||
|
||||
private static final IUFStatusHandler statusHandler = UFStatus
|
||||
.getHandler(PgenSession.class);
|
||||
|
||||
private String perspectiveId = "";
|
||||
|
||||
/*
|
||||
* Hide default constructor
|
||||
*/
|
||||
private PgenSession() {
|
||||
|
||||
AbstractVizPerspectiveManager pMngr = VizPerspectiveListener.getCurrentPerspectiveManager();
|
||||
if ( pMngr != null ){
|
||||
setPerspectiveId(pMngr.getPerspectiveId());
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -254,7 +272,6 @@ public class PgenSession implements IPartListener2,
|
|||
* com.raytheon.uf.viz
|
||||
* .core.IRenderableDisplayChangedListener.DisplayChangeType)
|
||||
*/
|
||||
@SuppressWarnings("restriction")
|
||||
@Override
|
||||
public void renderableDisplayChanged(IDisplayPane pane,
|
||||
IRenderableDisplay newRenderableDisplay, DisplayChangeType type) {
|
||||
|
@ -265,12 +282,17 @@ public class PgenSession implements IPartListener2,
|
|||
VizMapEditor editorChanged = (VizMapEditor) newRenderableDisplay
|
||||
.getContainer();
|
||||
|
||||
if (PgenUtil.getPgenMode() == PgenMode.SINGLE) { // for D2d
|
||||
// swapping, single
|
||||
// pane mode
|
||||
if (PgenUtil.getPgenMode() == PgenMode.SINGLE) {
|
||||
// for D2d swapping, single pane mode
|
||||
if (pgenResource != null) {
|
||||
pgenResource.removeGhostLine();
|
||||
pgenResource.removeSelected();
|
||||
|
||||
// Make sure PGEN resource repaint in the new editor.
|
||||
PgenResource rsc = PgenUtil.findPgenResource(editorChanged );
|
||||
if ( rsc != null ){
|
||||
rsc.resetAllElements();
|
||||
}
|
||||
}
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
|
@ -295,8 +317,8 @@ public class PgenSession implements IPartListener2,
|
|||
} else {
|
||||
// editor has PGEN resource, reset to selecting mode
|
||||
pgenResource = PgenUtil.findPgenResource(editorChanged);
|
||||
pgenResource.setCatFilter(new CategoryFilter("Any"));
|
||||
palette.setCurrentCategory("Any");
|
||||
pgenResource.setCatFilter(new CategoryFilter());
|
||||
palette.setCurrentCategory(PgenPaletteWindow.CATEGORY_ANY);
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
} else {
|
||||
|
@ -335,13 +357,13 @@ public class PgenSession implements IPartListener2,
|
|||
}
|
||||
this.pgenResource = PgenUtil
|
||||
.findPgenResource(editorChanged);
|
||||
this.pgenResource.setCatFilter(new CategoryFilter(
|
||||
"Any"));
|
||||
this.palette.setCurrentCategory("Any");
|
||||
this.pgenResource.setCatFilter(new CategoryFilter());
|
||||
this.palette.setCurrentCategory(PgenPaletteWindow.CATEGORY_ANY);
|
||||
PgenUtil.setSelectingMode();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
statusHandler.handle(Priority.PROBLEM,
|
||||
"Cannot open PGEN palette view", e);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -358,6 +380,18 @@ public class PgenSession implements IPartListener2,
|
|||
sideView.unregisterMouseHandler(this.getPgenTool()
|
||||
.getMouseHandler());
|
||||
}
|
||||
|
||||
// Make sure PGEN resource repaint in the new editor.
|
||||
if (PgenUtil.getPgenMode() == PgenMode.SINGLE) {
|
||||
ResourceList rscList = sideView.getActiveDisplayPane().getDescriptor().getResourceList();
|
||||
|
||||
for (ResourcePair rp : rscList) {
|
||||
AbstractVizResource<?, ?> rsc = rp.getResource();
|
||||
if ( rsc instanceof PgenResource) {
|
||||
((PgenResource)rsc).resetAllElements();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -423,4 +457,16 @@ public class PgenSession implements IPartListener2,
|
|||
this.pgenTool = pgenTool;
|
||||
}
|
||||
|
||||
public String getPerspectiveId() {
|
||||
return perspectiveId;
|
||||
}
|
||||
|
||||
public void setPerspectiveId(String perspectiveId) {
|
||||
this.perspectiveId = perspectiveId;
|
||||
}
|
||||
|
||||
public void endSession(){
|
||||
instance = null;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -18,6 +18,7 @@ import gov.noaa.nws.ncep.ui.pgen.elements.Text;
|
|||
import gov.noaa.nws.ncep.ui.pgen.elements.labeledlines.LabeledLine;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.tcm.Tcm;
|
||||
import gov.noaa.nws.ncep.ui.pgen.gfa.Gfa;
|
||||
import gov.noaa.nws.ncep.ui.pgen.palette.PgenPaletteWindow;
|
||||
import gov.noaa.nws.ncep.ui.pgen.tca.TCAElement;
|
||||
|
||||
/**
|
||||
|
@ -36,6 +37,10 @@ public class CategoryFilter implements ElementFilter {
|
|||
public CategoryFilter(String category) {
|
||||
this.category = category;
|
||||
}
|
||||
|
||||
public CategoryFilter(){
|
||||
this.category = PgenPaletteWindow.CATEGORY_ANY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean accept(AbstractDrawableComponent adc) {
|
||||
|
@ -88,14 +93,14 @@ public class CategoryFilter implements ElementFilter {
|
|||
(adc.getParent() instanceof LabeledLine ||
|
||||
adc.getParent().getParent() instanceof LabeledLine )) {
|
||||
//cannot select individual from LabeledLine collection
|
||||
if ( category.equalsIgnoreCase("ANY")){
|
||||
if ( category.equalsIgnoreCase(PgenPaletteWindow.CATEGORY_ANY)){
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else if ( category.equalsIgnoreCase("any") ||
|
||||
else if ( category.equalsIgnoreCase(PgenPaletteWindow.CATEGORY_ANY) ||
|
||||
adc.getPgenCategory().equalsIgnoreCase(category) ) {
|
||||
if ( category.equalsIgnoreCase("Lines") ) {
|
||||
if ( adc.getParent() instanceof Jet ||
|
||||
|
|
|
@ -111,6 +111,7 @@ import com.raytheon.viz.ui.tools.AbstractModalTool;
|
|||
* 01/10 ? S. Gilbert Initial Creation.
|
||||
* 08/13 TTR696/774 J. Wu Reset title/Close product manage dialog.
|
||||
* 11/13 #1081 B. Yin Get selected DE to change front/line type.
|
||||
* 12/14 R5413 B. Yin Removed unused variables, loops.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -204,8 +205,8 @@ public class PgenPaletteWindow extends ViewPart implements SelectionListener,
|
|||
private IContextActivation pgenContextActivation;
|
||||
|
||||
private AbstractEditor currentIsMultiPane = null;
|
||||
|
||||
private boolean isDetached;
|
||||
|
||||
public static final String CATEGORY_ANY = "Any";
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
|
@ -393,17 +394,6 @@ public class PgenPaletteWindow extends ViewPart implements SelectionListener,
|
|||
if (current != null)
|
||||
PgenSession.getInstance().setResource(current);
|
||||
|
||||
comp.addControlListener(new ControlAdapter() {
|
||||
@Override
|
||||
public void controlResized(ControlEvent e) {
|
||||
updateDetached();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void updateDetached() {
|
||||
isDetached = mainComp.getShell().getText().length() == 0;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -609,6 +599,16 @@ public class PgenPaletteWindow extends ViewPart implements SelectionListener,
|
|||
|
||||
IEditorPart editor = VizWorkbenchManager.getInstance()
|
||||
.getActiveEditor();
|
||||
|
||||
//Set perspective ID in session
|
||||
if ( PgenSession.getInstance().getPerspectiveId() == null ||
|
||||
PgenSession.getInstance().getPerspectiveId().isEmpty()){
|
||||
AbstractVizPerspectiveManager pMngr = VizPerspectiveListener.getCurrentPerspectiveManager();
|
||||
if ( pMngr != null ){
|
||||
PgenSession.getInstance().setPerspectiveId(pMngr.getPerspectiveId());
|
||||
}
|
||||
}
|
||||
|
||||
if (editor instanceof AbstractEditor) {// && ((NCMapEditor)
|
||||
// editor).getApplicationName().equals("NA")
|
||||
// ) {
|
||||
|
@ -874,6 +874,13 @@ public class PgenPaletteWindow extends ViewPart implements SelectionListener,
|
|||
// part).getApplicationName().equals("NA")) {
|
||||
|
||||
if (PgenUtil.isNatlCntrsEditor(part) || part instanceof VizMapEditor) {
|
||||
|
||||
//Prevent PGEN going to another perspective
|
||||
AbstractVizPerspectiveManager pMngr = VizPerspectiveListener.getCurrentPerspectiveManager();
|
||||
if ( pMngr != null && pMngr.getPerspectiveId() != PgenSession.getInstance().getPerspectiveId() ){
|
||||
return;
|
||||
}
|
||||
|
||||
PgenResource rsc = PgenUtil.findPgenResource((AbstractEditor) part);
|
||||
|
||||
// if ( PgenSession.getInstance().getPgenResource().getDescriptor()
|
||||
|
@ -885,7 +892,7 @@ public class PgenPaletteWindow extends ViewPart implements SelectionListener,
|
|||
|
||||
if (rsc != null) {
|
||||
rsc.setCatFilter(new CategoryFilter(
|
||||
(currentCategory == null) ? "Any" : currentCategory));
|
||||
(currentCategory == null) ? CATEGORY_ANY : currentCategory));
|
||||
}
|
||||
|
||||
PgenSession.getInstance().setResource(rsc);
|
||||
|
@ -977,22 +984,12 @@ public class PgenPaletteWindow extends ViewPart implements SelectionListener,
|
|||
if (VizPerspectiveListener.getCurrentPerspectiveManager() == null)
|
||||
return; // workbench probably closing
|
||||
|
||||
AbstractEditor[] editors = UiUtil.getEditors(PlatformUI
|
||||
.getWorkbench().getActiveWorkbenchWindow(),
|
||||
VizPerspectiveListener.getCurrentPerspectiveManager()
|
||||
.getPerspectiveId());
|
||||
/*
|
||||
* UiUtil.getEditors returns active editor first. Run through
|
||||
* list in reverse so that active editor is processed last.
|
||||
*/
|
||||
for (int i = editors.length - 1; i >= 0; i--) {
|
||||
// unloadPgenResource(editors[i]);
|
||||
}
|
||||
|
||||
for (AbstractEditor editor : PgenSession.getInstance()
|
||||
.getEditors()) {
|
||||
unloadPgenResource(editor);
|
||||
}
|
||||
|
||||
PgenSession.getInstance().endSession();
|
||||
}
|
||||
|
||||
// if ( currentIsMultiPane != null )
|
||||
|
|
|
@ -51,7 +51,6 @@ import gov.noaa.nws.ncep.ui.pgen.sigmet.Sigmet;
|
|||
import gov.noaa.nws.ncep.ui.pgen.tca.TCAElement;
|
||||
import gov.noaa.nws.ncep.ui.pgen.tca.TropicalCycloneAdvisory;
|
||||
import gov.noaa.nws.ncep.ui.pgen.tools.AbstractPgenTool;
|
||||
import gov.noaa.nws.ncep.ui.pgen.tools.InputHandlerDefaultImpl;
|
||||
import gov.noaa.nws.ncep.ui.pgen.tools.PgenSnapJet;
|
||||
|
||||
import java.awt.Color;
|
||||
|
@ -77,10 +76,8 @@ import com.raytheon.uf.viz.core.drawables.ResourcePair;
|
|||
import com.raytheon.uf.viz.core.exception.VizException;
|
||||
import com.raytheon.uf.viz.core.map.MapDescriptor;
|
||||
import com.raytheon.uf.viz.core.rsc.AbstractVizResource;
|
||||
import com.raytheon.uf.viz.core.rsc.IInputHandler;
|
||||
import com.raytheon.uf.viz.core.rsc.IResourceDataChanged;
|
||||
import com.raytheon.uf.viz.core.rsc.LoadProperties;
|
||||
import com.raytheon.uf.viz.core.rsc.IInputHandler.InputPriority;
|
||||
import com.raytheon.uf.viz.core.rsc.ResourceList.RemoveListener;
|
||||
import com.raytheon.uf.viz.core.rsc.capabilities.EditableCapability;
|
||||
import com.raytheon.viz.core.gl.IGLTarget;
|
||||
|
@ -88,7 +85,6 @@ import com.raytheon.viz.ui.cmenu.IContextMenuProvider;
|
|||
import com.raytheon.viz.ui.editor.AbstractEditor;
|
||||
import com.raytheon.viz.ui.editor.IMultiPaneEditor;
|
||||
import com.raytheon.viz.ui.input.EditableManager;
|
||||
import com.raytheon.viz.ui.panes.PaneManager;
|
||||
import com.raytheon.viz.ui.perspectives.AbstractVizPerspectiveManager;
|
||||
import com.raytheon.viz.ui.perspectives.VizPerspectiveListener;
|
||||
import com.raytheon.viz.ui.tools.AbstractModalTool;
|
||||
|
@ -150,6 +146,7 @@ import com.vividsolutions.jts.geom.Point;
|
|||
* 04/13 #977 S. Gilbert PGEN Database support
|
||||
* 11/13 TTR 752 J. Wu Add methods for CCFP text auto placement.
|
||||
* 11/14 R5413 B. Yin Display PGEN in side view in D2D
|
||||
* 12/14 R5413 B. Yin Added resetAllElements(), reset ghost, removed "Any".
|
||||
* </pre>
|
||||
*
|
||||
* @author B. Yin
|
||||
|
@ -217,7 +214,7 @@ public class PgenResource extends
|
|||
selectedSymbol = new HashMap<AbstractDrawableComponent, Symbol>();
|
||||
displayMap = new ConcurrentHashMap<DrawableElement, AbstractElementContainer>();
|
||||
filters = new ElementFilterCollection();
|
||||
setCatFilter(new CategoryFilter("any"));
|
||||
setCatFilter(new CategoryFilter());
|
||||
|
||||
// Register this new resource with the Session
|
||||
PgenSession.getInstance().setResource(this);
|
||||
|
@ -365,9 +362,10 @@ public class PgenResource extends
|
|||
public void paintInternal(IGraphicsTarget target, PaintProperties paintProps)
|
||||
throws VizException {
|
||||
IDisplayPaneContainer editor = getResourceContainer();
|
||||
|
||||
//Draw in main editor and side view (IMultiPaneEditor)
|
||||
if (editor instanceof AbstractEditor || editor instanceof IMultiPaneEditor) {
|
||||
|
||||
// Draw in main editor and side view (IMultiPaneEditor)
|
||||
if (editor instanceof AbstractEditor
|
||||
|| editor instanceof IMultiPaneEditor) {
|
||||
DisplayElementFactory df = new DisplayElementFactory(target,
|
||||
descriptor);
|
||||
|
||||
|
@ -545,6 +543,8 @@ public class PgenResource extends
|
|||
|
||||
if (this.ghost == null) {
|
||||
this.ghost = new PgenResourceGhost();
|
||||
} else {
|
||||
this.ghost.dispose();
|
||||
}
|
||||
// this.ghost = ghost;
|
||||
this.ghost.setGhostLine(ghost);
|
||||
|
@ -683,7 +683,8 @@ public class PgenResource extends
|
|||
|
||||
private void drawSelected(IGraphicsTarget target, PaintProperties paintProps) {
|
||||
|
||||
if ( !elSelected.isEmpty() && PgenSession.getInstance().getPgenPalette() != null ) {
|
||||
if (!elSelected.isEmpty()
|
||||
&& PgenSession.getInstance().getPgenPalette() != null) {
|
||||
DisplayElementFactory df = new DisplayElementFactory(target,
|
||||
descriptor);
|
||||
List<IDisplayable> displayEls = new ArrayList<IDisplayable>();
|
||||
|
@ -1377,6 +1378,20 @@ public class PgenResource extends
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Releases the resources held by all DEs to refresh all.
|
||||
*
|
||||
* @param adc
|
||||
*/
|
||||
public void resetAllElements(){
|
||||
for ( Product prd : this.resourceData.getProductList() ){
|
||||
for ( Layer layer : prd.getLayers()) {
|
||||
this.resetADC(layer);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds the nearest element in the a DECollection to the input point.
|
||||
*
|
||||
|
@ -1752,9 +1767,10 @@ public class PgenResource extends
|
|||
* De-activate all PGEN tools for all perspectives
|
||||
*/
|
||||
public void deactivatePgenTools() {
|
||||
|
||||
for (String pid : VizPerspectiveListener.getManagedPerspectives()){
|
||||
AbstractVizPerspectiveManager mgr = VizPerspectiveListener.getInstance().getPerspectiveManager(pid);
|
||||
|
||||
for (String pid : VizPerspectiveListener.getManagedPerspectives()) {
|
||||
AbstractVizPerspectiveManager mgr = VizPerspectiveListener
|
||||
.getInstance().getPerspectiveManager(pid);
|
||||
if (mgr != null) {
|
||||
Iterator<AbstractModalTool> it = mgr.getToolManager()
|
||||
.getSelectedModalTools().iterator();
|
||||
|
@ -1767,8 +1783,7 @@ public class PgenResource extends
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -23,7 +23,6 @@ import gov.noaa.nws.ncep.ui.pgen.display.AbstractElementContainer;
|
|||
import gov.noaa.nws.ncep.ui.pgen.display.DefaultElementContainer;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.DisplayElementFactory;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.AbstractDrawableComponent;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.DECollection;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.DrawableElement;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -38,36 +37,38 @@ import com.raytheon.uf.viz.core.map.IMapDescriptor;
|
|||
* Ghost drawing for the pgen resource.
|
||||
*
|
||||
* <pre>
|
||||
*
|
||||
*
|
||||
* SOFTWARE HISTORY
|
||||
*
|
||||
*
|
||||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Jun 15, 2012 bgonzale Initial creation
|
||||
*
|
||||
* Dec 10, 2014 R5413 byin Added dispose method.
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
*
|
||||
* @author bgonzale
|
||||
* @version 1.0
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
public class PgenResourceGhost {
|
||||
public AbstractDrawableComponent component;
|
||||
|
||||
Map<Object, AbstractElementContainer> componentMap = new HashMap<Object, AbstractElementContainer>();
|
||||
|
||||
|
||||
/**
|
||||
* Draw the ghost
|
||||
*
|
||||
* @param target
|
||||
* @param paintProps
|
||||
* @param df
|
||||
* @param descriptor
|
||||
*/
|
||||
public void draw( IGraphicsTarget target, PaintProperties paintProps,
|
||||
DisplayElementFactory df, IMapDescriptor descriptor){
|
||||
df.setLayerDisplayAttr( false, null, false );
|
||||
public void draw(IGraphicsTarget target, PaintProperties paintProps,
|
||||
DisplayElementFactory df, IMapDescriptor descriptor) {
|
||||
df.setLayerDisplayAttr(false, null, false);
|
||||
if (component != null) {
|
||||
Iterator<DrawableElement> iterator = component
|
||||
.createDEIterator();
|
||||
Iterator<DrawableElement> iterator = component.createDEIterator();
|
||||
int count = 0;
|
||||
while (iterator.hasNext()) {
|
||||
DrawableElement element = iterator.next();
|
||||
|
@ -76,21 +77,27 @@ public class PgenResourceGhost {
|
|||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Creates displayables for an element using an ElementContainer and call the
|
||||
* displayables' draw() method to draw the element.
|
||||
* @param target Graphic target
|
||||
* @param paintProps Paint properties
|
||||
* @param df Display element factory
|
||||
* @param el Input drawable element
|
||||
* Creates displayables for an element using an ElementContainer and call
|
||||
* the displayables' draw() method to draw the element.
|
||||
*
|
||||
* @param target
|
||||
* Graphic target
|
||||
* @param paintProps
|
||||
* Paint properties
|
||||
* @param df
|
||||
* Display element factory
|
||||
* @param el
|
||||
* Input drawable element
|
||||
* @praram descriptor
|
||||
*/
|
||||
private void drawElement( IGraphicsTarget target, PaintProperties paintProps,
|
||||
DisplayElementFactory df, DrawableElement el, IMapDescriptor descriptor){
|
||||
private void drawElement(IGraphicsTarget target,
|
||||
PaintProperties paintProps, DisplayElementFactory df,
|
||||
DrawableElement el, IMapDescriptor descriptor) {
|
||||
Object key = createKey(el);
|
||||
AbstractElementContainer graphic = componentMap.get(key);
|
||||
|
||||
AbstractElementContainer graphic = componentMap.get(key);
|
||||
|
||||
if (graphic == null) {
|
||||
graphic = new DefaultElementContainer(el, descriptor, target);
|
||||
componentMap.put(key, graphic);
|
||||
|
@ -99,16 +106,26 @@ public class PgenResourceGhost {
|
|||
}
|
||||
graphic.draw(target, paintProps, null, true);
|
||||
}
|
||||
|
||||
|
||||
private Object createKey(DrawableElement el) {
|
||||
return el.getPgenCategory()+ ":"+el.getPgenType();
|
||||
return el.getPgenCategory() + ":" + el.getPgenType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the ghost line for the PGEN drawing layer.
|
||||
* @param ghost
|
||||
*
|
||||
* @param ghost
|
||||
*/
|
||||
public void setGhostLine(AbstractDrawableComponent ghost) {
|
||||
this.component = ghost;
|
||||
this.component = ghost;
|
||||
}
|
||||
|
||||
/*
|
||||
* Release resources held by the ghost elements.
|
||||
*/
|
||||
public void dispose() {
|
||||
for (AbstractElementContainer aec : componentMap.values()) {
|
||||
aec.dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -172,38 +172,6 @@ public class PgenAddLabelHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( ghostLabel != null ){
|
||||
|
||||
if(prevTool.getLabeledLine().getName().contains("CCFP_SIGMET")){
|
||||
addCcfpLabel(loc, prevTool.getLabeledLine());
|
||||
cleanUp();
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
|
||||
if ( !pts.isEmpty()){
|
||||
// addLabel( pts.get(pts.size()-1), prevTool.getLabeledLine() );
|
||||
addLabel( pts.get(pts.size()-1), (LabeledLine)lineSelected.getParent() );
|
||||
|
||||
}
|
||||
else {
|
||||
lineSelected = null;
|
||||
ghostLabel = null;
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
}
|
||||
}
|
||||
pts.clear();
|
||||
}
|
||||
else {
|
||||
//clean up and exit
|
||||
lineSelected = null;
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
dlg.resetLabeledLineBtns();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
|
@ -296,8 +264,65 @@ public class PgenAddLabelHandler extends InputHandlerDefaultImpl {
|
|||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !drawingLayer.isEditable()|| shiftDown ) return false;
|
||||
else return true; }
|
||||
else return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int, int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int mouseButton) {
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = mapEditor.translateClick(x, y);
|
||||
if ( loc == null ) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if ( mouseButton == 3 ){
|
||||
if ( ghostLabel != null ){
|
||||
|
||||
if(prevTool.getLabeledLine().getName().contains("CCFP_SIGMET")){
|
||||
addCcfpLabel(loc, prevTool.getLabeledLine());
|
||||
cleanUp();
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
|
||||
if ( !pts.isEmpty()){
|
||||
// addLabel( pts.get(pts.size()-1), prevTool.getLabeledLine() );
|
||||
addLabel( pts.get(pts.size()-1), (LabeledLine)lineSelected.getParent() );
|
||||
|
||||
}
|
||||
else {
|
||||
lineSelected = null;
|
||||
ghostLabel = null;
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
}
|
||||
}
|
||||
pts.clear();
|
||||
}
|
||||
else {
|
||||
//clean up and exit
|
||||
lineSelected = null;
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
dlg.resetLabeledLineBtns();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create label for line ln at location loc.
|
||||
* @param loc
|
||||
|
|
|
@ -151,6 +151,9 @@ public class PgenAddPointAltHandler extends InputHandlerDefaultImpl {
|
|||
return preempt;
|
||||
|
||||
}
|
||||
else if ( button == 3 ){
|
||||
return true;
|
||||
}
|
||||
|
||||
else{
|
||||
|
||||
|
|
|
@ -154,6 +154,9 @@ public class PgenAddPointHandler extends InputHandlerDefaultImpl {
|
|||
return preempt;
|
||||
|
||||
}
|
||||
else if ( button == 3 ){
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
|
|
@ -115,12 +115,7 @@ public class PgenAvnTextDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
// The following methods are called when the tool is deactivated
|
||||
// and are not needed here
|
||||
//drawingLayer.removeGhostLine();
|
||||
//mapEditor.refresh();
|
||||
//attrDlg.close();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
|
@ -168,6 +163,26 @@ public class PgenAvnTextDrawingTool extends AbstractPgenDrawingTool {
|
|||
if ( shiftDown || !isResourceEditable()) return false;
|
||||
else return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int, int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable()|| shiftDown ) return false;
|
||||
|
||||
// prevent the click going through to other handlers
|
||||
// in case adding labels to symbols or fronts.
|
||||
if ( mouseButton == 3 ) {
|
||||
PgenUtil.setSelectingMode();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -306,32 +306,7 @@ public class PgenConnectTool extends AbstractPgenDrawingTool {
|
|||
|
||||
} else if (button == 3) {
|
||||
|
||||
if (secondEl != null) {
|
||||
// reselect the second element
|
||||
ghostEl = createGhostElement(firstEl, nearPt, loc);
|
||||
drawingLayer.setGhostLine(ghostEl);
|
||||
|
||||
secondEl = null;
|
||||
secondJet = null;
|
||||
} else {
|
||||
|
||||
if (firstEl != null) {
|
||||
// unselect the first element but stay in "Connect" mode
|
||||
drawingLayer.removeGhostLine();
|
||||
drawingLayer.removeSelected();
|
||||
nearPt = 0;
|
||||
firstEl = null;
|
||||
firstJet = null;
|
||||
} else {
|
||||
// Exit "Connect" mode & set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
return false;
|
||||
return true;
|
||||
|
||||
} else { // Button 2 - ignore
|
||||
|
||||
|
@ -383,6 +358,40 @@ public class PgenConnectTool extends AbstractPgenDrawingTool {
|
|||
if (!isResourceEditable()) {
|
||||
return false;
|
||||
}
|
||||
|
||||
Coordinate loc = mapEditor.translateClick(x, y);
|
||||
if (loc == null) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
if (secondEl != null) {
|
||||
// reselect the second element
|
||||
ghostEl = createGhostElement(firstEl, nearPt, loc);
|
||||
drawingLayer.setGhostLine(ghostEl);
|
||||
|
||||
secondEl = null;
|
||||
secondJet = null;
|
||||
} else {
|
||||
|
||||
if (firstEl != null) {
|
||||
// unselect the first element but stay in "Connect" mode
|
||||
drawingLayer.removeGhostLine();
|
||||
drawingLayer.removeSelected();
|
||||
nearPt = 0;
|
||||
firstEl = null;
|
||||
firstJet = null;
|
||||
} else {
|
||||
// Exit "Connect" mode & set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
mapEditor.refresh();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -148,18 +148,6 @@ public class PgenCopyElement extends AbstractPgenTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( drawingLayer.getSelectedComp() != null ){
|
||||
// de-select element
|
||||
drawingLayer.removeSelected();
|
||||
drawingLayer.removeGhostLine();
|
||||
ghostEl = null;
|
||||
mapEditor.refresh();
|
||||
}
|
||||
else {
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -344,6 +332,24 @@ public class PgenCopyElement extends AbstractPgenTool {
|
|||
|
||||
if ( !isResourceEditable()|| shiftDown || simulate ) return false;
|
||||
|
||||
if ( button == 3 ) {
|
||||
|
||||
if ( drawingLayer.getSelectedComp() != null ){
|
||||
// de-select element
|
||||
drawingLayer.removeSelected();
|
||||
drawingLayer.removeGhostLine();
|
||||
ghostEl = null;
|
||||
mapEditor.refresh();
|
||||
}
|
||||
else {
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
if ( ghostEl != null ) {
|
||||
|
||||
// reset color for the el and add it to PGEN resource
|
||||
|
|
|
@ -60,6 +60,24 @@ public class PgenDeleteObj extends AbstractPgenTool {
|
|||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseDown(int,
|
||||
* int, int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button) {
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
|
|
|
@ -242,15 +242,7 @@ public class PgenDeletePart extends PgenSelectingTool {
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
// reset
|
||||
ptSelected = false;
|
||||
drawingLayer.removeGhostLine();
|
||||
drawingLayer.removeSelected();
|
||||
lil = null;
|
||||
mapEditor.refresh();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -281,7 +273,23 @@ public class PgenDeletePart extends PgenSelectingTool {
|
|||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
return false;
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
// reset
|
||||
ptSelected = false;
|
||||
drawingLayer.removeGhostLine();
|
||||
drawingLayer.removeSelected();
|
||||
lil = null;
|
||||
mapEditor.refresh();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -126,7 +126,9 @@ public class PgenDeletePointHandler extends PgenSelectHandler{
|
|||
return true;
|
||||
|
||||
}
|
||||
|
||||
else if ( button == 3 ){
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
|
|
@ -135,21 +135,6 @@ public class PgenDualPointDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
// NmapUiUtils.setPanningMode();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
points.clear();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -205,7 +190,6 @@ public class PgenDualPointDrawingTool extends AbstractPgenDrawingTool {
|
|||
|
||||
}
|
||||
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
@ -216,7 +200,36 @@ public class PgenDualPointDrawingTool extends AbstractPgenDrawingTool {
|
|||
else return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
points.clear();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Check if the given starting angle is less than the ending angle
|
||||
*/
|
||||
|
|
|
@ -36,49 +36,49 @@ import gov.noaa.nws.ncep.ui.pgen.filter.OperationFilter;
|
|||
* @author J. Wu
|
||||
*/
|
||||
public class PgenExtrapTool extends AbstractPgenDrawingTool {
|
||||
|
||||
|
||||
/**
|
||||
* Input handler for mouse events.
|
||||
*/
|
||||
public PgenExtrapTool(){
|
||||
|
||||
super();
|
||||
|
||||
|
||||
super();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the current mouse handler.
|
||||
* @return
|
||||
*/
|
||||
public IInputHandler getMouseHandler() {
|
||||
|
||||
if ( this.mouseHandler == null ) {
|
||||
|
||||
this.mouseHandler = new PgenExtrapHandler();
|
||||
|
||||
|
||||
if ( this.mouseHandler == null ) {
|
||||
|
||||
this.mouseHandler = new PgenExtrapHandler();
|
||||
|
||||
}
|
||||
|
||||
return this.mouseHandler;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Implements input handler for mouse events.
|
||||
* @author jwu
|
||||
*
|
||||
*/
|
||||
public class PgenExtrapHandler extends InputHandlerDefaultImpl {
|
||||
|
||||
private boolean preempt;
|
||||
|
||||
/**
|
||||
* Current extrapolation dialog.
|
||||
*/
|
||||
private PgenExtrapDlg extrapDlg = null;
|
||||
|
||||
private OperationFilter extrapFilter = new OperationFilter( Operation.EXTRAPOLATE );
|
||||
|
||||
|
||||
private boolean preempt;
|
||||
|
||||
/**
|
||||
* Current extrapolation dialog.
|
||||
*/
|
||||
private PgenExtrapDlg extrapDlg = null;
|
||||
|
||||
private OperationFilter extrapFilter = new OperationFilter( Operation.EXTRAPOLATE );
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
@ -87,86 +87,102 @@ public class PgenExtrapTool extends AbstractPgenDrawingTool {
|
|||
*/
|
||||
@Override
|
||||
public boolean handleMouseDown( int anX, int aY, int button ) {
|
||||
if ( !isResourceEditable() ) return false;
|
||||
if ( !isResourceEditable() ) return false;
|
||||
|
||||
preempt = false;
|
||||
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = mapEditor.translateClick(anX, aY);
|
||||
if ( loc == null || shiftDown ) return false;
|
||||
|
||||
if ( button == 1 ) {
|
||||
preempt = false;
|
||||
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = mapEditor.translateClick(anX, aY);
|
||||
if ( loc == null || shiftDown ) return false;
|
||||
|
||||
if ( button == 1 ) {
|
||||
|
||||
if ( drawingLayer.getSelectedComp() == null ) {
|
||||
|
||||
// Get the nearest element and set it as the selected element.
|
||||
AbstractDrawableComponent elSelected = drawingLayer.getNearestComponent( loc, extrapFilter, true );
|
||||
drawingLayer.setSelected( elSelected );
|
||||
if ( elSelected != null ) preempt = true;
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
extrapDlg = (PgenExtrapDlg)attrDlg;
|
||||
|
||||
AbstractDrawableComponent elem = drawingLayer.getSelectedComp();
|
||||
|
||||
AbstractDrawableComponent newDE = PgenToolUtils.extrapElement( elem,
|
||||
extrapDlg.getDirection(), extrapDlg.getDistance() );
|
||||
|
||||
boolean getNewDE = true;
|
||||
if ( newDE instanceof WatchBox ){
|
||||
getNewDE = PgenWatchBoxModifyTool.resnapWatchBox(mapEditor, (WatchBox)newDE, (WatchBox)newDE);
|
||||
}
|
||||
|
||||
if ( getNewDE ){
|
||||
if ( extrapDlg.isCopy() ) {
|
||||
drawingLayer.addElement( newDE );
|
||||
}
|
||||
else {
|
||||
drawingLayer.replaceElement( drawingLayer.getSelectedComp(), newDE );
|
||||
}
|
||||
}
|
||||
|
||||
drawingLayer.removeSelected();
|
||||
|
||||
}
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
return preempt;
|
||||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( drawingLayer.getSelectedComp() != null ) {
|
||||
|
||||
drawingLayer.removeSelected();
|
||||
mapEditor.refresh();
|
||||
|
||||
// Get the nearest element and set it as the selected element.
|
||||
AbstractDrawableComponent elSelected = drawingLayer.getNearestComponent( loc, extrapFilter, true );
|
||||
drawingLayer.setSelected( elSelected );
|
||||
if ( elSelected != null ) preempt = true;
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
|
||||
extrapDlg = (PgenExtrapDlg)attrDlg;
|
||||
|
||||
AbstractDrawableComponent elem = drawingLayer.getSelectedComp();
|
||||
|
||||
AbstractDrawableComponent newDE = PgenToolUtils.extrapElement( elem,
|
||||
extrapDlg.getDirection(), extrapDlg.getDistance() );
|
||||
|
||||
boolean getNewDE = true;
|
||||
if ( newDE instanceof WatchBox ){
|
||||
getNewDE = PgenWatchBoxModifyTool.resnapWatchBox(mapEditor, (WatchBox)newDE, (WatchBox)newDE);
|
||||
}
|
||||
|
||||
if ( getNewDE ){
|
||||
if ( extrapDlg.isCopy() ) {
|
||||
drawingLayer.addElement( newDE );
|
||||
}
|
||||
else {
|
||||
drawingLayer.replaceElement( drawingLayer.getSelectedComp(), newDE );
|
||||
}
|
||||
}
|
||||
|
||||
drawingLayer.removeSelected();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
return preempt;
|
||||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
else return preempt;
|
||||
}
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
else return preempt;
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
if ( drawingLayer.getSelectedComp() != null ) {
|
||||
|
||||
drawingLayer.removeSelected();
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -40,52 +40,52 @@ import gov.noaa.nws.ncep.ui.pgen.rsc.PgenResource;
|
|||
*/
|
||||
|
||||
public class PgenFlipDrawingElement extends AbstractPgenTool {
|
||||
|
||||
//private Log log = LogFactory.getLog(getClass());
|
||||
|
||||
|
||||
//private Log log = LogFactory.getLog(getClass());
|
||||
|
||||
/**
|
||||
* Input handler for mouse events.
|
||||
*/
|
||||
protected IInputHandler flipHandler;
|
||||
|
||||
|
||||
|
||||
public PgenFlipDrawingElement(){
|
||||
|
||||
super();
|
||||
|
||||
|
||||
super();
|
||||
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the current mouse handler.
|
||||
* @return
|
||||
*/
|
||||
public IInputHandler getMouseHandler() {
|
||||
if ( this.flipHandler == null ) {
|
||||
this.flipHandler = new PgenFlipHandler(drawingLayer, mapEditor);
|
||||
this.flipHandler = new PgenFlipHandler(drawingLayer, mapEditor);
|
||||
}
|
||||
return this.flipHandler;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Implements input handler for mouse events.
|
||||
* @author Michael Gao
|
||||
*
|
||||
*/
|
||||
public class PgenFlipHandler extends InputHandlerDefaultImpl {
|
||||
|
||||
private PgenResource flipPgenSource;
|
||||
// private NCMapEditor flipNCMapEditor;
|
||||
private AbstractEditor flipNCMapEditor;
|
||||
private boolean preempt;
|
||||
private OperationFilter flipFilter;
|
||||
|
||||
// public PgenFlipHandler(PgenResource _flipPgenSource, NCMapEditor _flipNCMapEditor) {
|
||||
|
||||
private PgenResource flipPgenSource;
|
||||
// private NCMapEditor flipNCMapEditor;
|
||||
private AbstractEditor flipNCMapEditor;
|
||||
private boolean preempt;
|
||||
private OperationFilter flipFilter;
|
||||
|
||||
// public PgenFlipHandler(PgenResource _flipPgenSource, NCMapEditor _flipNCMapEditor) {
|
||||
public PgenFlipHandler(PgenResource _flipPgenSource, AbstractEditor _flipNCMapEditor) {
|
||||
flipPgenSource = _flipPgenSource;
|
||||
flipNCMapEditor = _flipNCMapEditor;
|
||||
flipFilter = new OperationFilter( Operation.FLIP );
|
||||
}
|
||||
|
||||
flipPgenSource = _flipPgenSource;
|
||||
flipNCMapEditor = _flipNCMapEditor;
|
||||
flipFilter = new OperationFilter( Operation.FLIP );
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
@ -94,54 +94,73 @@ public class PgenFlipDrawingElement extends AbstractPgenTool {
|
|||
*/
|
||||
@Override
|
||||
public boolean handleMouseDown(int anX, int aY, int button) {
|
||||
if ( !isResourceEditable() ) return false;
|
||||
if ( !isResourceEditable() ) return false;
|
||||
|
||||
preempt = false;
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = flipNCMapEditor.translateClick(anX, aY);
|
||||
if ( loc == null || shiftDown ) return false;
|
||||
|
||||
//DrawableElement selectedDrawableElement = flipPgenSource.getSelectedDE();
|
||||
AbstractDrawableComponent selectedDrawableElement = flipPgenSource.getSelectedComp();
|
||||
preempt = false;
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = flipNCMapEditor.translateClick(anX, aY);
|
||||
if ( loc == null || shiftDown ) return false;
|
||||
|
||||
if ( button == 1 ) {
|
||||
/*
|
||||
* create a new DrawableElement with reversed points based on the selectedDrawableElement
|
||||
*/
|
||||
AbstractDrawableComponent reversedDrawableElement = null;
|
||||
if ( selectedDrawableElement instanceof Cloud ){
|
||||
reversedDrawableElement = selectedDrawableElement.copy();
|
||||
DrawableElement de = flipPgenSource.getNearestElement( loc, (Cloud)reversedDrawableElement );
|
||||
if ( de != null && de instanceof Line ){
|
||||
((Cloud)reversedDrawableElement).add(PgenToolUtils.createReversedDrawableElement(de));
|
||||
((Cloud)reversedDrawableElement).remove(de);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
reversedDrawableElement = PgenToolUtils.createReversedDrawableElement(selectedDrawableElement);
|
||||
}
|
||||
|
||||
leftMouseButtonDownHandler(flipPgenSource, selectedDrawableElement, reversedDrawableElement, loc);
|
||||
flipNCMapEditor.refresh();
|
||||
if ( selectedDrawableElement != null ) preempt = true;
|
||||
//DrawableElement selectedDrawableElement = flipPgenSource.getSelectedDE();
|
||||
AbstractDrawableComponent selectedDrawableElement = flipPgenSource.getSelectedComp();
|
||||
|
||||
if ( button == 1 ) {
|
||||
/*
|
||||
* create a new DrawableElement with reversed points based on the selectedDrawableElement
|
||||
*/
|
||||
AbstractDrawableComponent reversedDrawableElement = null;
|
||||
if ( selectedDrawableElement instanceof Cloud ){
|
||||
reversedDrawableElement = selectedDrawableElement.copy();
|
||||
DrawableElement de = flipPgenSource.getNearestElement( loc, (Cloud)reversedDrawableElement );
|
||||
if ( de != null && de instanceof Line ){
|
||||
((Cloud)reversedDrawableElement).add(PgenToolUtils.createReversedDrawableElement(de));
|
||||
((Cloud)reversedDrawableElement).remove(de);
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
else {
|
||||
reversedDrawableElement = PgenToolUtils.createReversedDrawableElement(selectedDrawableElement);
|
||||
}
|
||||
|
||||
leftMouseButtonDownHandler(flipPgenSource, selectedDrawableElement, reversedDrawableElement, loc);
|
||||
flipNCMapEditor.refresh();
|
||||
if ( selectedDrawableElement != null ) preempt = true;
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
rightMouseButtonDownHandler(flipPgenSource, selectedDrawableElement, flipNCMapEditor);
|
||||
return true;
|
||||
}
|
||||
return preempt;
|
||||
return preempt;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
return preempt;
|
||||
}
|
||||
|
||||
/*
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
return preempt;
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
AbstractDrawableComponent selectedDrawableElement = flipPgenSource.getSelectedComp();
|
||||
rightMouseButtonDownHandler(flipPgenSource, selectedDrawableElement, flipNCMapEditor);
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* If the selectedDrawableElement is valid, reverse the Coordinate points of the
|
||||
* DrawableElement and then set the reversed points back to the DrawableElement. Otherwise,
|
||||
* retrieve the nearest DrawableElement object using the current mouse location
|
||||
|
@ -151,21 +170,21 @@ public class PgenFlipDrawingElement extends AbstractPgenTool {
|
|||
* @return
|
||||
*/
|
||||
private void leftMouseButtonDownHandler(PgenResource thePgenSource,
|
||||
AbstractDrawableComponent selectedDrawableElement,
|
||||
AbstractDrawableComponent reversedDrawableElement,
|
||||
Coordinate currentMouselocation) {
|
||||
if ( selectedDrawableElement == null ) {
|
||||
// Get the nearest element and set it as the selected element.
|
||||
selectedDrawableElement = thePgenSource.getNearestComponent( currentMouselocation, flipFilter, true );
|
||||
if(selectedDrawableElement == null)
|
||||
return;
|
||||
thePgenSource.setSelected( selectedDrawableElement );
|
||||
} else {
|
||||
thePgenSource.replaceElement(selectedDrawableElement, reversedDrawableElement);
|
||||
thePgenSource.setSelected( reversedDrawableElement );
|
||||
}
|
||||
AbstractDrawableComponent selectedDrawableElement,
|
||||
AbstractDrawableComponent reversedDrawableElement,
|
||||
Coordinate currentMouselocation) {
|
||||
if ( selectedDrawableElement == null ) {
|
||||
// Get the nearest element and set it as the selected element.
|
||||
selectedDrawableElement = thePgenSource.getNearestComponent( currentMouselocation, flipFilter, true );
|
||||
if(selectedDrawableElement == null)
|
||||
return;
|
||||
thePgenSource.setSelected( selectedDrawableElement );
|
||||
} else {
|
||||
thePgenSource.replaceElement(selectedDrawableElement, reversedDrawableElement);
|
||||
thePgenSource.setSelected( reversedDrawableElement );
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* If a valid selectedDrawableElement still exists, de-select the element,
|
||||
* Otherwise, change the action mode to Selecting Mode from the Flip Mode
|
||||
|
@ -175,20 +194,20 @@ public class PgenFlipDrawingElement extends AbstractPgenTool {
|
|||
* @return
|
||||
*/
|
||||
private void rightMouseButtonDownHandler(PgenResource thePpgenSource,
|
||||
// AbstractDrawableComponent selectedDrawableElement, NCMapEditor theNCMapEditor) {
|
||||
AbstractDrawableComponent selectedDrawableElement, AbstractEditor theNCMapEditor) {
|
||||
if ( selectedDrawableElement != null ){
|
||||
// de-select element
|
||||
thePpgenSource.removeSelected();
|
||||
selectedDrawableElement = null;
|
||||
theNCMapEditor.refresh();
|
||||
}
|
||||
else {
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
// AbstractDrawableComponent selectedDrawableElement, NCMapEditor theNCMapEditor) {
|
||||
AbstractDrawableComponent selectedDrawableElement, AbstractEditor theNCMapEditor) {
|
||||
if ( selectedDrawableElement != null ){
|
||||
// de-select element
|
||||
thePpgenSource.removeSelected();
|
||||
selectedDrawableElement = null;
|
||||
theNCMapEditor.refresh();
|
||||
}
|
||||
else {
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -110,13 +110,6 @@ public class PgenFromTool extends AbstractPgenDrawingTool {
|
|||
*/
|
||||
else if ( button == 3 ) {
|
||||
|
||||
/*
|
||||
* return to Pgen Select mode
|
||||
*/
|
||||
drawingLayer.removeSelected();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
mapEditor.refresh();
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -131,6 +124,29 @@ public class PgenFromTool extends AbstractPgenDrawingTool {
|
|||
if ( !isResourceEditable() ) return false;
|
||||
return preempt;
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
/*
|
||||
* return to Pgen Select mode
|
||||
*/
|
||||
drawingLayer.removeSelected();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
mapEditor.refresh();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -212,73 +212,7 @@ public class PgenGfaDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
//exit drawing text mode
|
||||
if ( startGfaText ) {
|
||||
startGfaText = false;
|
||||
|
||||
if ( ((Gfa)elem).getGfaTextCoordinate() == null ){
|
||||
//if right click before adding the text
|
||||
((Gfa)elem).setGfaTextCoordinate(loc);
|
||||
drawingLayer.addElement(elem);
|
||||
validateGfa( (Gfa)elem) ;
|
||||
mapEditor.refresh();
|
||||
points.clear();
|
||||
}
|
||||
else {
|
||||
//change to selecting mode to move points
|
||||
PgenUtil.setSelectingMode(elem);
|
||||
elem = null;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
closeAttrDlg(attrDlg);
|
||||
attrDlg = null;
|
||||
drawingLayer.removeSelected((Gfa)elem);
|
||||
elem = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
removeClearRefresh();
|
||||
}
|
||||
else {
|
||||
//Use pgenType value to decide if the DrawableType should be TRACK or LINE
|
||||
|
||||
if (drawableType == DrawableType.GFA && points.size() == 2 ) {
|
||||
removeClearRefresh();
|
||||
return true;
|
||||
}
|
||||
if(!((GfaAttrDlg)attrDlg).validateRequiredFields()) return false;
|
||||
|
||||
if(((IGfa)attrDlg).getGfaFcstHr().indexOf("-") > -1) {
|
||||
// snap
|
||||
points = SnapUtil.getSnapWithStation(points,SnapUtil.VOR_STATION_LIST,10,16);
|
||||
}
|
||||
|
||||
// create a new DrawableElement.
|
||||
elem = def.create( drawableType, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
//set the hour filter
|
||||
if ( PgenFilterDlg.isFilterDlgOpen()){
|
||||
PgenFilterDlg.getInstance(null).setHourChkBox(((Gfa)elem).getForecastHours(), true);
|
||||
}
|
||||
|
||||
//set from line
|
||||
String vorText = Gfa.buildVorText( (Gfa)elem );
|
||||
((Gfa)elem).setGfaVorText( vorText );
|
||||
((GfaAttrDlg)attrDlg).setVorText( vorText );
|
||||
|
||||
startGfaText = true;
|
||||
attrDlg.setAttrForDlg(attrDlg); // update the parameters in GfaAttrDlg
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ( button == 2 ){
|
||||
|
@ -404,6 +338,94 @@ public class PgenGfaDrawingTool extends AbstractPgenDrawingTool {
|
|||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if (!isResourceEditable() || shiftDown )
|
||||
return false;
|
||||
|
||||
Coordinate loc = mapEditor.translateClick(x, y);
|
||||
if ( loc == null ) return true;
|
||||
|
||||
if (button == 3) {
|
||||
//exit drawing text mode
|
||||
if ( startGfaText ) {
|
||||
startGfaText = false;
|
||||
|
||||
if ( ((Gfa)elem).getGfaTextCoordinate() == null ){
|
||||
//if right click before adding the text
|
||||
((Gfa)elem).setGfaTextCoordinate(loc);
|
||||
drawingLayer.addElement(elem);
|
||||
validateGfa( (Gfa)elem) ;
|
||||
mapEditor.refresh();
|
||||
points.clear();
|
||||
}
|
||||
else {
|
||||
//change to selecting mode to move points
|
||||
PgenUtil.setSelectingMode(elem);
|
||||
elem = null;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
closeAttrDlg(attrDlg);
|
||||
attrDlg = null;
|
||||
drawingLayer.removeSelected((Gfa)elem);
|
||||
elem = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
removeClearRefresh();
|
||||
}
|
||||
else {
|
||||
//Use pgenType value to decide if the DrawableType should be TRACK or LINE
|
||||
DrawableType drawableType = getDrawableType(pgenType);
|
||||
|
||||
if (drawableType == DrawableType.GFA && points.size() == 2 ) {
|
||||
removeClearRefresh();
|
||||
return true;
|
||||
}
|
||||
if(!((GfaAttrDlg)attrDlg).validateRequiredFields()) return false;
|
||||
|
||||
if(((IGfa)attrDlg).getGfaFcstHr().indexOf("-") > -1) {
|
||||
// snap
|
||||
points = SnapUtil.getSnapWithStation(points,SnapUtil.VOR_STATION_LIST,10,16);
|
||||
}
|
||||
|
||||
// create a new DrawableElement.
|
||||
elem = def.create( drawableType, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
//set the hour filter
|
||||
if ( PgenFilterDlg.isFilterDlgOpen()){
|
||||
PgenFilterDlg.getInstance(null).setHourChkBox(((Gfa)elem).getForecastHours(), true);
|
||||
}
|
||||
|
||||
//set from line
|
||||
String vorText = Gfa.buildVorText( (Gfa)elem );
|
||||
((Gfa)elem).setGfaVorText( vorText );
|
||||
((GfaAttrDlg)attrDlg).setVorText( vorText );
|
||||
|
||||
startGfaText = true;
|
||||
attrDlg.setAttrForDlg(attrDlg); // update the parameters in GfaAttrDlg
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public void clearPoints(){
|
||||
points.clear();
|
||||
}
|
||||
|
|
|
@ -108,7 +108,6 @@ public class PgenGfaFormatTool extends AbstractPgenDrawingTool {
|
|||
|
||||
} else if (button == 3) {
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
return true;
|
||||
|
||||
} else {
|
||||
|
@ -120,6 +119,24 @@ public class PgenGfaFormatTool extends AbstractPgenDrawingTool {
|
|||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
return false;
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public StringBuilder generate(PgenResource drawingLayer,
|
||||
|
|
|
@ -190,53 +190,7 @@ public class PgenInterpolationTool extends AbstractPgenDrawingTool {
|
|||
* Right mouse button pressed
|
||||
*/
|
||||
else if ( button == 3 ) {
|
||||
|
||||
switch (status) {
|
||||
case START:
|
||||
/*
|
||||
* return to Pgen Select mode
|
||||
*/
|
||||
PgenUtil.setSelectingMode();
|
||||
break;
|
||||
case SELECTED_1:
|
||||
/*
|
||||
* Remove currently selected element from selected list
|
||||
*/
|
||||
drawingLayer.removeSelected();
|
||||
status = SELECT_STATUS.START;
|
||||
break;
|
||||
case VERIFIED_1:
|
||||
/*
|
||||
* Remove currently verified element from selected list
|
||||
*/
|
||||
interpDlg.enableStartTime();
|
||||
interpDlg.enableEndTime();
|
||||
drawingLayer.removeSelected();
|
||||
status = SELECT_STATUS.START;
|
||||
break;
|
||||
case SELECTED_2:
|
||||
/*
|
||||
* Remove second selected element from selected list
|
||||
*/
|
||||
drawingLayer.removeSelected( selectedEls.get(1) );
|
||||
status = SELECT_STATUS.VERIFIED_1;
|
||||
break;
|
||||
case VERIFIED_2:
|
||||
/*
|
||||
* remove all elements from the selected list
|
||||
*/
|
||||
drawingLayer.removeSelected();
|
||||
interpDlg.enableStartTime();
|
||||
interpDlg.enableEndTime();
|
||||
interpDlg.disarm(); // Disable Interpolation button
|
||||
status = SELECT_STATUS.START;
|
||||
break;
|
||||
}
|
||||
|
||||
mapEditor.refresh();
|
||||
//System.out.println("Button 3333333 status = "+status);
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
else {
|
||||
|
@ -244,6 +198,66 @@ public class PgenInterpolationTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
if (button == 3) {
|
||||
switch (status) {
|
||||
case START:
|
||||
/*
|
||||
* return to Pgen Select mode
|
||||
*/
|
||||
PgenUtil.setSelectingMode();
|
||||
break;
|
||||
case SELECTED_1:
|
||||
/*
|
||||
* Remove currently selected element from selected list
|
||||
*/
|
||||
drawingLayer.removeSelected();
|
||||
status = SELECT_STATUS.START;
|
||||
break;
|
||||
case VERIFIED_1:
|
||||
/*
|
||||
* Remove currently verified element from selected list
|
||||
*/
|
||||
interpDlg.enableStartTime();
|
||||
interpDlg.enableEndTime();
|
||||
drawingLayer.removeSelected();
|
||||
status = SELECT_STATUS.START;
|
||||
break;
|
||||
case SELECTED_2:
|
||||
/*
|
||||
* Remove second selected element from selected list
|
||||
*/
|
||||
drawingLayer.removeSelected( selectedEls.get(1) );
|
||||
status = SELECT_STATUS.VERIFIED_1;
|
||||
break;
|
||||
case VERIFIED_2:
|
||||
/*
|
||||
* remove all elements from the selected list
|
||||
*/
|
||||
drawingLayer.removeSelected();
|
||||
interpDlg.enableStartTime();
|
||||
interpDlg.enableEndTime();
|
||||
interpDlg.disarm(); // Disable Interpolation button
|
||||
status = SELECT_STATUS.START;
|
||||
break;
|
||||
}
|
||||
|
||||
mapEditor.refresh();
|
||||
//System.out.println("Button 3333333 status = "+status);
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -14,6 +14,7 @@ import com.raytheon.viz.ui.editor.AbstractEditor;
|
|||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
|
||||
|
||||
import gov.noaa.nws.ncep.ui.pgen.PgenUtil;
|
||||
//import gov.noaa.nws.ncep.ui.display.InputHandlerDefaultImpl;
|
||||
import gov.noaa.nws.ncep.ui.pgen.attrdialog.JetAttrDlg;
|
||||
import gov.noaa.nws.ncep.ui.pgen.display.IText.DisplayType;
|
||||
|
@ -110,12 +111,7 @@ public class PgenJetBarbAddingHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( jetDlg != null )((JetAttrDlg)jetDlg).closeBarbDlg();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -157,6 +153,27 @@ public class PgenJetBarbAddingHandler extends InputHandlerDefaultImpl {
|
|||
else return true;
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( jetDlg != null )((JetAttrDlg)jetDlg).closeBarbDlg();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create the wind info(barb and FL text) at location loc.
|
||||
* @param loc
|
||||
|
|
|
@ -136,10 +136,6 @@ public class PgenJetBarbDeletingHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -151,6 +147,25 @@ public class PgenJetBarbDeletingHandler extends InputHandlerDefaultImpl {
|
|||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
|
|
@ -184,54 +184,7 @@ public class PgenJetDrawingTool extends PgenMultiPointDrawingTool
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// create a new Jet.
|
||||
elem = def.create( DrawableType.JET, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
jet = (Jet)elem;
|
||||
|
||||
jet.setSnapTool(new PgenSnapJet(drawingLayer.getDescriptor(), mapEditor, (JetAttrDlg)attrDlg));
|
||||
|
||||
// add the jet to PGEN resource
|
||||
drawingLayer.addElement( jet );
|
||||
|
||||
//reset the jet line attributes
|
||||
AbstractDrawableComponent adc = AttrSettings.getInstance().getSettings().get( pgenType );
|
||||
if ( adc != null && adc instanceof Jet ){
|
||||
((Jet)adc).getJetLine().update(attrDlg);
|
||||
}
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
((JetAttrDlg)attrDlg).setJetDrawingTool(PgenJetDrawingTool.this);
|
||||
((JetAttrDlg)attrDlg).enableBarbBtns(true);
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
return true;
|
||||
|
||||
}
|
||||
else{
|
||||
|
@ -282,5 +235,70 @@ public class PgenJetDrawingTool extends PgenMultiPointDrawingTool
|
|||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
else return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// create a new Jet.
|
||||
elem = def.create( DrawableType.JET, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
jet = (Jet)elem;
|
||||
|
||||
jet.setSnapTool(new PgenSnapJet(drawingLayer.getDescriptor(), mapEditor, (JetAttrDlg)attrDlg));
|
||||
|
||||
// add the jet to PGEN resource
|
||||
drawingLayer.addElement( jet );
|
||||
|
||||
//reset the jet line attributes
|
||||
AbstractDrawableComponent adc = AttrSettings.getInstance().getSettings().get( pgenType );
|
||||
if ( adc != null && adc instanceof Jet ){
|
||||
((Jet)adc).getJetLine().update(attrDlg);
|
||||
}
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
((JetAttrDlg)attrDlg).setJetDrawingTool(PgenJetDrawingTool.this);
|
||||
((JetAttrDlg)attrDlg).enableBarbBtns(true);
|
||||
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
@ -95,10 +95,6 @@ public class PgenJetHashAddingHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -109,7 +105,27 @@ public class PgenJetHashAddingHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
|
@ -125,11 +125,7 @@ public class PgenJetHashDeletingHandler extends InputHandlerDefaultImpl {
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -140,7 +136,27 @@ public class PgenJetHashDeletingHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
|
|
@ -128,15 +128,6 @@ public class PgenKinkLineDrawingTool extends AbstractPgenDrawingTool {
|
|||
|
||||
} else if (button == 3) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if (points.size() == 0) {
|
||||
PgenUtil.setSelectingMode();
|
||||
} else {
|
||||
points.clear();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
} else if (button == 2) {
|
||||
|
@ -150,7 +141,32 @@ public class PgenKinkLineDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if (points.size() == 0) {
|
||||
PgenUtil.setSelectingMode();
|
||||
} else {
|
||||
points.clear();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
|
@ -8,6 +8,7 @@
|
|||
|
||||
package gov.noaa.nws.ncep.ui.pgen.tools;
|
||||
|
||||
import gov.noaa.nws.ncep.ui.pgen.PgenUtil;
|
||||
import gov.noaa.nws.ncep.ui.pgen.attrdialog.AttrDlg;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.AbstractDrawableComponent;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.DrawableElement;
|
||||
|
@ -153,8 +154,6 @@ public class PgenLabeledLineDelHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
dlg.resetLabeledLineBtns();
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -165,7 +164,24 @@ public class PgenLabeledLineDelHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
dlg.resetLabeledLineBtns();
|
||||
prevTool.resetMouseHandler();
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
|
|
@ -181,82 +181,6 @@ public class PgenLabeledLineDrawingTool extends AbstractPgenDrawingTool
|
|||
return true;
|
||||
|
||||
} else if (button == 3) {
|
||||
|
||||
if (points.size() == 0) {
|
||||
|
||||
if (attrDlg.isAddLineMode()) {
|
||||
// add mode
|
||||
attrDlg.resetLabeledLineBtns();
|
||||
} else {
|
||||
// clean up
|
||||
closeAttrDlg(attrDlg, pgenType);
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
labeledLine = null;
|
||||
|
||||
} else if (points.size() < 2) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
} else {
|
||||
|
||||
// add the labeled line to PGEN resource
|
||||
if (attrDlg.isAddLineMode()) {
|
||||
elem = def.createLabeledLine(pgenCategory, pgenType,
|
||||
(IAttribute) attrDlg, points, null,
|
||||
drawingLayer.getActiveLayer());
|
||||
|
||||
drawingLayer.addElement(elem);
|
||||
labeledLine = (LabeledLine) elem;
|
||||
AttrSettings.getInstance().setSettings(elem);
|
||||
}
|
||||
|
||||
if ("CCFP_SIGMET".equals(pgenType)) {
|
||||
|
||||
elem = def.createLabeledLine(pgenCategory, pgenType,
|
||||
(IAttribute) attrDlg, points, null,
|
||||
drawingLayer.getActiveLayer());
|
||||
|
||||
drawingLayer.addElement(elem);
|
||||
labeledLine = (LabeledLine) elem;
|
||||
|
||||
if (ccdlg.isAreaType()) {// avoid 2 Sigmet elements
|
||||
// issue
|
||||
// If auto placement is on, add label directly.
|
||||
if (!PgenUtil.getTextAutoPlacement()) {
|
||||
/*
|
||||
* return true;avoid right click cause no
|
||||
* showing issue
|
||||
*/
|
||||
ccfpTxtFlag = true;
|
||||
setAddingLabelHandler();
|
||||
} else {
|
||||
Text t = new Text();
|
||||
Label lbl = new Label(t);
|
||||
lbl.setParent(labeledLine);
|
||||
setCcfpText(
|
||||
labeledLine,
|
||||
((gov.noaa.nws.ncep.ui.pgen.sigmet.Ccfp) labeledLine)
|
||||
.getAreaLine(), t, lbl);
|
||||
|
||||
labeledLine.addLabel(lbl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
if (!ccfpTxtFlag)
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
} else if (button == 2) {
|
||||
|
@ -335,6 +259,98 @@ public class PgenLabeledLineDrawingTool extends AbstractPgenDrawingTool
|
|||
points.clear();
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int, int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
|
||||
if ( mouseButton == 3 ){
|
||||
if (points.size() == 0) {
|
||||
|
||||
if (attrDlg.isAddLineMode()) {
|
||||
// add mode
|
||||
attrDlg.resetLabeledLineBtns();
|
||||
} else {
|
||||
// clean up
|
||||
closeAttrDlg(attrDlg, pgenType);
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
labeledLine = null;
|
||||
|
||||
} else if (points.size() < 2) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
} else {
|
||||
|
||||
// add the labeled line to PGEN resource
|
||||
if (attrDlg.isAddLineMode()) {
|
||||
elem = def.createLabeledLine(pgenCategory, pgenType,
|
||||
(IAttribute) attrDlg, points, null,
|
||||
drawingLayer.getActiveLayer());
|
||||
|
||||
drawingLayer.addElement(elem);
|
||||
labeledLine = (LabeledLine) elem;
|
||||
AttrSettings.getInstance().setSettings(elem);
|
||||
}
|
||||
|
||||
if ("CCFP_SIGMET".equals(pgenType)) {
|
||||
|
||||
elem = def.createLabeledLine(pgenCategory, pgenType,
|
||||
(IAttribute) attrDlg, points, null,
|
||||
drawingLayer.getActiveLayer());
|
||||
|
||||
drawingLayer.addElement(elem);
|
||||
labeledLine = (LabeledLine) elem;
|
||||
|
||||
if (ccdlg.isAreaType()) {// avoid 2 Sigmet elements
|
||||
// issue
|
||||
// If auto placement is on, add label directly.
|
||||
if (!PgenUtil.getTextAutoPlacement()) {
|
||||
/*
|
||||
* return true;avoid right click cause no
|
||||
* showing issue
|
||||
*/
|
||||
ccfpTxtFlag = true;
|
||||
setAddingLabelHandler();
|
||||
} else {
|
||||
Text t = new Text();
|
||||
Label lbl = new Label(t);
|
||||
lbl.setParent(labeledLine);
|
||||
setCcfpText(
|
||||
labeledLine,
|
||||
((gov.noaa.nws.ncep.ui.pgen.sigmet.Ccfp) labeledLine)
|
||||
.getAreaLine(), t, lbl);
|
||||
|
||||
labeledLine.addLabel(lbl);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
if (!ccfpTxtFlag)
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns the Labeled Line in the current layer with input
|
||||
* type(Turb/Cloud).
|
||||
|
|
|
@ -185,57 +185,7 @@ public class PgenLabeledLineModifyTool extends PgenSelectingTool implements
|
|||
|
||||
return false;
|
||||
}
|
||||
//clean up
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( attrDlg.isAddLineMode()){
|
||||
if ( points.size() == 0 ) {
|
||||
attrDlg.resetLabeledLineBtns();
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
//add line to labeled line collection
|
||||
// LabeledLine newll = def.createLabeledLine( labeledLine.getPgenCategory(), labeledLine.getPgenType(),
|
||||
// (IAttribute)attrDlg, points, labeledLine.copy(), drawingLayer.getActiveLayer());
|
||||
|
||||
LabeledLine newll = def.createLabeledLine( pgenCategory, PgenLabeledLineModifyTool.this.pgenType, (IAttribute)attrDlg,
|
||||
points, null, drawingLayer.getActiveLayer());
|
||||
|
||||
// drawingLayer.replaceElement(labeledLine, newll);
|
||||
drawingLayer.addElement( newll );
|
||||
labeledLine = newll;
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
//re-set selected
|
||||
// resetSelected();
|
||||
|
||||
drawingLayer.setSelected(newll);
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Close the attribute dialog and do the cleanup.
|
||||
if ( attrDlg != null ) {
|
||||
attrDlg.close();
|
||||
}
|
||||
|
||||
attrDlg = null;
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
ptSelected2 = false; ptSelected = false;
|
||||
drawingLayer.removeSelected();
|
||||
mapEditor.refresh();
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -510,6 +460,58 @@ public class PgenLabeledLineModifyTool extends PgenSelectingTool implements
|
|||
}
|
||||
|
||||
}
|
||||
else if ( button ==3 ) {
|
||||
|
||||
if ( attrDlg.isAddLineMode()){
|
||||
if ( points.size() == 0 ) {
|
||||
attrDlg.resetLabeledLineBtns();
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
//add line to labeled line collection
|
||||
// LabeledLine newll = def.createLabeledLine( labeledLine.getPgenCategory(), labeledLine.getPgenType(),
|
||||
// (IAttribute)attrDlg, points, labeledLine.copy(), drawingLayer.getActiveLayer());
|
||||
|
||||
LabeledLine newll = def.createLabeledLine( pgenCategory, PgenLabeledLineModifyTool.this.pgenType, (IAttribute)attrDlg,
|
||||
points, null, drawingLayer.getActiveLayer());
|
||||
|
||||
// drawingLayer.replaceElement(labeledLine, newll);
|
||||
drawingLayer.addElement( newll );
|
||||
labeledLine = newll;
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
//re-set selected
|
||||
// resetSelected();
|
||||
|
||||
drawingLayer.setSelected(newll);
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Close the attribute dialog and do the cleanup.
|
||||
if ( attrDlg != null ) {
|
||||
attrDlg.close();
|
||||
}
|
||||
|
||||
attrDlg = null;
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
ptSelected2 = false; ptSelected = false;
|
||||
drawingLayer.removeSelected();
|
||||
mapEditor.refresh();
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//make sure the arrow line won't go through the text box.
|
||||
if(labeledLine instanceof Ccfp) ((Ccfp)labeledLine).moveText2Last();
|
||||
|
|
|
@ -177,6 +177,67 @@ public class PgenModifyTool extends AbstractPgenTool {
|
|||
|
||||
} else if (button == 3) {
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseMove(int,
|
||||
* int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseMove(int x, int y) {
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = mapEditor.translateClick(x, y);
|
||||
if (loc == null)
|
||||
return false;
|
||||
|
||||
// create the ghost element and put it in the drawing layer
|
||||
if (clickPts != null && clickPts.size() >= 1) {
|
||||
|
||||
ArrayList<Coordinate> newPts = new ArrayList<Coordinate>(
|
||||
clickPts);
|
||||
newPts.add(loc);
|
||||
|
||||
pml.setClickPts(latlonToPixel(newPts
|
||||
.toArray(new Coordinate[newPts.size()])));
|
||||
|
||||
ModifyLine();
|
||||
|
||||
ghostEl.setColors(new Color[] { ghostColor,
|
||||
new java.awt.Color(255, 255, 255) });
|
||||
drawingLayer.setGhostLine(ghostEl);
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int,
|
||||
* int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button) {
|
||||
if (!isResourceEditable() || shiftDown)
|
||||
return false;
|
||||
|
||||
if ( button == 3 ) {
|
||||
|
||||
if (drawingLayer.getSelectedDE() != null) {
|
||||
|
||||
if (clickPts != null && !clickPts.isEmpty()) {
|
||||
|
@ -265,68 +326,15 @@ public class PgenModifyTool extends AbstractPgenTool {
|
|||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseMove(int,
|
||||
* int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseMove(int x, int y) {
|
||||
if (!isResourceEditable())
|
||||
return false;
|
||||
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = mapEditor.translateClick(x, y);
|
||||
if (loc == null)
|
||||
return false;
|
||||
|
||||
// create the ghost element and put it in the drawing layer
|
||||
if (clickPts != null && clickPts.size() >= 1) {
|
||||
|
||||
ArrayList<Coordinate> newPts = new ArrayList<Coordinate>(
|
||||
clickPts);
|
||||
newPts.add(loc);
|
||||
|
||||
pml.setClickPts(latlonToPixel(newPts
|
||||
.toArray(new Coordinate[newPts.size()])));
|
||||
|
||||
ModifyLine();
|
||||
|
||||
ghostEl.setColors(new Color[] { ghostColor,
|
||||
new java.awt.Color(255, 255, 255) });
|
||||
drawingLayer.setGhostLine(ghostEl);
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int,
|
||||
* int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button) {
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if (!isResourceEditable() || shiftDown)
|
||||
|
|
|
@ -13,6 +13,7 @@ import java.util.Iterator;
|
|||
import com.raytheon.uf.viz.core.rsc.IInputHandler;
|
||||
import com.vividsolutions.jts.geom.Coordinate;
|
||||
|
||||
import gov.noaa.nws.ncep.ui.pgen.PgenUtil;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.AbstractDrawableComponent;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.DrawableElement;
|
||||
import gov.noaa.nws.ncep.ui.pgen.elements.WatchBox;
|
||||
|
@ -74,9 +75,27 @@ public class PgenMoveElement extends PgenCopyElement {
|
|||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button) {
|
||||
|
||||
if ( !isResourceEditable() || shiftDown || simulate ) return false;
|
||||
|
||||
if ( ghostEl != null ) {
|
||||
if ( !isResourceEditable() || shiftDown || simulate ) return false;
|
||||
|
||||
if ( button == 3 ) {
|
||||
|
||||
if ( drawingLayer.getSelectedComp() != null ){
|
||||
// de-select element
|
||||
drawingLayer.removeSelected();
|
||||
drawingLayer.removeGhostLine();
|
||||
ghostEl = null;
|
||||
mapEditor.refresh();
|
||||
}
|
||||
else {
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
||||
if ( ghostEl != null ) {
|
||||
|
||||
AbstractDrawableComponent comp = drawingLayer.getSelectedComp();
|
||||
// reset color for the el and add it to PGEN resource
|
||||
|
|
|
@ -198,72 +198,7 @@ public class PgenMultiPointDrawingTool extends AbstractPgenDrawingTool {
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
closeAttrDlg(attrDlg, pgenType);
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
//Use pgenType value to decide if the DrawableType should be TRACK or LINE
|
||||
DrawableType drawableType = getDrawableType(pgenType);
|
||||
// log.debug("PgenMultiPointDrawingTool, before call def.create, drawableType=" + drawableType + ", pgenType="+pgenType);
|
||||
|
||||
/*if(drawableType == DrawableType.CONV_SIGMET && ("NCON_SIGMET".equals(pgenType))) //"CONV_SIGMET".equals(pgenType)||
|
||||
points = SnapUtil.getSnapWithStation(points, SnapUtil.VOR_STATION_LIST, 10, 8);*/
|
||||
|
||||
// create a new DrawableElement.
|
||||
elem = def.create( drawableType, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
attrDlg.setDrawableElement((DrawableElement)elem);
|
||||
AttrSettings.getInstance().setSettings((DrawableElement)elem);
|
||||
|
||||
if("CCFP_SIGMET".equals(pgenType)){//avoid 2 Sigmet elements issue
|
||||
ccfpTxtFlag = true;
|
||||
return true;//avoid right click cause no showing issue
|
||||
|
||||
}
|
||||
else if ( elem != null && elem.getPgenCategory().equalsIgnoreCase("Front")
|
||||
&& ((FrontAttrDlg)attrDlg).labelEnabled()){
|
||||
|
||||
DECollection dec = new DECollection("labeledFront");
|
||||
dec.setPgenCategory(pgenCategory);
|
||||
dec.setPgenType(pgenType);
|
||||
dec.addElement(elem);
|
||||
drawingLayer.addElement(dec);
|
||||
|
||||
PgenUtil.setDrawingTextMode( true, ((FrontAttrDlg)attrDlg).useFrontColor(), "", dec );
|
||||
elem = null;
|
||||
}else{
|
||||
// add the product to PGEN resource
|
||||
drawingLayer.addElement( elem );
|
||||
}
|
||||
|
||||
|
||||
if(isTrackElement(drawableType)) {
|
||||
displayTrackExtrapPointInfoDlg((TrackAttrDlg)attrDlg, (Track)elem);
|
||||
}
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
|
||||
if( ! ccfpTxtFlag)
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -280,6 +215,87 @@ public class PgenMultiPointDrawingTool extends AbstractPgenDrawingTool {
|
|||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
closeAttrDlg(attrDlg, pgenType);
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
//Use pgenType value to decide if the DrawableType should be TRACK or LINE
|
||||
DrawableType drawableType = getDrawableType(pgenType);
|
||||
// log.debug("PgenMultiPointDrawingTool, before call def.create, drawableType=" + drawableType + ", pgenType="+pgenType);
|
||||
|
||||
/*if(drawableType == DrawableType.CONV_SIGMET && ("NCON_SIGMET".equals(pgenType))) //"CONV_SIGMET".equals(pgenType)||
|
||||
points = SnapUtil.getSnapWithStation(points, SnapUtil.VOR_STATION_LIST, 10, 8);*/
|
||||
|
||||
// create a new DrawableElement.
|
||||
elem = def.create( drawableType, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
attrDlg.setDrawableElement((DrawableElement)elem);
|
||||
AttrSettings.getInstance().setSettings((DrawableElement)elem);
|
||||
|
||||
if("CCFP_SIGMET".equals(pgenType)){//avoid 2 Sigmet elements issue
|
||||
ccfpTxtFlag = true;
|
||||
return true;//avoid right click cause no showing issue
|
||||
|
||||
}
|
||||
else if ( elem != null && elem.getPgenCategory().equalsIgnoreCase("Front")
|
||||
&& ((FrontAttrDlg)attrDlg).labelEnabled()){
|
||||
|
||||
DECollection dec = new DECollection("labeledFront");
|
||||
dec.setPgenCategory(pgenCategory);
|
||||
dec.setPgenType(pgenType);
|
||||
dec.addElement(elem);
|
||||
drawingLayer.addElement(dec);
|
||||
|
||||
PgenUtil.setDrawingTextMode( true, ((FrontAttrDlg)attrDlg).useFrontColor(), "", dec );
|
||||
elem = null;
|
||||
}else{
|
||||
// add the product to PGEN resource
|
||||
drawingLayer.addElement( elem );
|
||||
}
|
||||
|
||||
|
||||
if(isTrackElement(drawableType)) {
|
||||
displayTrackExtrapPointInfoDlg((TrackAttrDlg)attrDlg, (Track)elem);
|
||||
}
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
|
||||
if( ! ccfpTxtFlag)
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int aX, int aY, int button) {
|
||||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
|
|
|
@ -156,7 +156,7 @@ public class PgenMultiSelectTool extends AbstractPgenDrawingTool {
|
|||
// Keep in multi-selecting mode
|
||||
// PgenUtil.setSelectingMode();
|
||||
}
|
||||
return false;
|
||||
return true;
|
||||
|
||||
} else {
|
||||
|
||||
|
|
|
@ -166,7 +166,6 @@ public class PgenOutlookDrawingTool extends AbstractPgenDrawingTool {
|
|||
public boolean handleMouseDown(int anX, int aY, int button) {
|
||||
if ( !isResourceEditable() ) return false;
|
||||
|
||||
DECollection dec = null;
|
||||
|
||||
// Check if mouse is in geographic extent
|
||||
Coordinate loc = mapEditor.translateClick(anX, aY);
|
||||
|
@ -181,77 +180,6 @@ public class PgenOutlookDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
String lineType = ((OutlookAttrDlg)attrDlg).getLineType();
|
||||
// create a new DrawableElement.
|
||||
// if (((OutlookAttrDlg)attrDlg).getOutlookType().equalsIgnoreCase("TROPICAL")
|
||||
// || ((OutlookAttrDlg)attrDlg).getOutlookType().equalsIgnoreCase("FLOOD"))
|
||||
// elem = (DrawableElement)def.create( DrawableType.LINE, (IAttribute)attrDlg,
|
||||
// "Lines", "LINE_SOLID", points, drawingLayer.getActiveLayer());
|
||||
// else
|
||||
elem = (DrawableElement)def.create( DrawableType.LINE, (IAttribute)attrDlg,
|
||||
"Lines", lineType, points, drawingLayer.getActiveLayer());
|
||||
//if (((IMultiPoint)attrDlg).getFillFlag()) ((Line)elem).setFillPattern(attrDlg.getFillPattern());
|
||||
|
||||
dec = new DECollection(Outlook.OUTLOOK_LABELED_LINE);
|
||||
dec.setPgenCategory("MET");
|
||||
|
||||
otlk = getCurrentOtlk(((OutlookAttrDlg)attrDlg).getOutlookType());
|
||||
|
||||
Outlook newOtlk = def.createOutlook( ((OutlookAttrDlg)attrDlg).getOutlookType(),
|
||||
elem, dec, otlk );
|
||||
|
||||
newOtlk.update( (OutlookAttrDlg)attrDlg );
|
||||
|
||||
// create a new outlook
|
||||
if ( otlk == null || !otlk.getPgenType().equalsIgnoreCase(((OutlookAttrDlg)attrDlg).getOutlookType()) ){
|
||||
drawingLayer.addElement( newOtlk );
|
||||
}
|
||||
else {
|
||||
drawingLayer.replaceElement(otlk, newOtlk);
|
||||
}
|
||||
|
||||
otlk = newOtlk;
|
||||
|
||||
attrDlg.setDrawableElement(elem);
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
//set TextDrawingtool or SymbolDrawingTool
|
||||
//bring up the text or the symbol dialog
|
||||
if ( ((OutlookAttrDlg)attrDlg).addLabel() ) {
|
||||
if ( ((OutlookAttrDlg)attrDlg).addText() ) {
|
||||
lbl = ((OutlookAttrDlg)attrDlg).getLblTxt();
|
||||
PgenUtil.setDrawingTextMode( true, ((OutlookAttrDlg)attrDlg).useLineColor(),
|
||||
lbl, dec );
|
||||
}
|
||||
else if ( ((OutlookAttrDlg)attrDlg).addSymbol() ) {
|
||||
|
||||
PgenUtil.setDrawingSymbolMode( ((OutlookAttrDlg)attrDlg).getSymbolCat(),
|
||||
((OutlookAttrDlg)attrDlg).getSymbolType(),
|
||||
((OutlookAttrDlg)attrDlg).useLineColor(), dec );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -267,7 +195,94 @@ public class PgenOutlookDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
DECollection dec = null;
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
String lineType = ((OutlookAttrDlg)attrDlg).getLineType();
|
||||
// create a new DrawableElement.
|
||||
// if (((OutlookAttrDlg)attrDlg).getOutlookType().equalsIgnoreCase("TROPICAL")
|
||||
// || ((OutlookAttrDlg)attrDlg).getOutlookType().equalsIgnoreCase("FLOOD"))
|
||||
// elem = (DrawableElement)def.create( DrawableType.LINE, (IAttribute)attrDlg,
|
||||
// "Lines", "LINE_SOLID", points, drawingLayer.getActiveLayer());
|
||||
// else
|
||||
elem = (DrawableElement)def.create( DrawableType.LINE, (IAttribute)attrDlg,
|
||||
"Lines", lineType, points, drawingLayer.getActiveLayer());
|
||||
//if (((IMultiPoint)attrDlg).getFillFlag()) ((Line)elem).setFillPattern(attrDlg.getFillPattern());
|
||||
|
||||
dec = new DECollection(Outlook.OUTLOOK_LABELED_LINE);
|
||||
dec.setPgenCategory("MET");
|
||||
|
||||
otlk = getCurrentOtlk(((OutlookAttrDlg)attrDlg).getOutlookType());
|
||||
|
||||
Outlook newOtlk = def.createOutlook( ((OutlookAttrDlg)attrDlg).getOutlookType(),
|
||||
elem, dec, otlk );
|
||||
|
||||
newOtlk.update( (OutlookAttrDlg)attrDlg );
|
||||
|
||||
// create a new outlook
|
||||
if ( otlk == null || !otlk.getPgenType().equalsIgnoreCase(((OutlookAttrDlg)attrDlg).getOutlookType()) ){
|
||||
drawingLayer.addElement( newOtlk );
|
||||
}
|
||||
else {
|
||||
drawingLayer.replaceElement(otlk, newOtlk);
|
||||
}
|
||||
|
||||
otlk = newOtlk;
|
||||
|
||||
attrDlg.setDrawableElement(elem);
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
//set TextDrawingtool or SymbolDrawingTool
|
||||
//bring up the text or the symbol dialog
|
||||
if ( ((OutlookAttrDlg)attrDlg).addLabel() ) {
|
||||
if ( ((OutlookAttrDlg)attrDlg).addText() ) {
|
||||
lbl = ((OutlookAttrDlg)attrDlg).getLblTxt();
|
||||
PgenUtil.setDrawingTextMode( true, ((OutlookAttrDlg)attrDlg).useLineColor(),
|
||||
lbl, dec );
|
||||
}
|
||||
else if ( ((OutlookAttrDlg)attrDlg).addSymbol() ) {
|
||||
|
||||
PgenUtil.setDrawingSymbolMode( ((OutlookAttrDlg)attrDlg).getSymbolCat(),
|
||||
((OutlookAttrDlg)attrDlg).getSymbolType(),
|
||||
((OutlookAttrDlg)attrDlg).useLineColor(), dec );
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
|
@ -162,10 +162,6 @@ public class PgenOutlookSetCont extends AbstractPgenDrawingTool{
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeSelected();
|
||||
PgenUtil.loadOutlookDrawingTool();
|
||||
dec = null;
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -176,7 +172,26 @@ public class PgenOutlookSetCont extends AbstractPgenDrawingTool{
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
drawingLayer.removeSelected();
|
||||
PgenUtil.loadOutlookDrawingTool();
|
||||
dec = null;
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable() ) return false;
|
||||
|
|
|
@ -288,9 +288,31 @@ public class PgenRotateElement extends AbstractPgenDrawingTool {
|
|||
|
||||
mapEditor.refresh();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if (button == 3) {
|
||||
|
||||
return false;
|
||||
if (trackExtrapPointInfoDlg != null) {
|
||||
trackExtrapPointInfoDlg.close();
|
||||
trackExtrapPointInfoDlg = null;
|
||||
}
|
||||
|
||||
if (drawingLayer.getSelectedDE() != null) {
|
||||
drawingLayer.removeGhostLine();
|
||||
ptSelected = false;
|
||||
drawingLayer.removeSelected();
|
||||
mapEditor.refresh();
|
||||
|
||||
} else {
|
||||
// set selecting mode
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -261,7 +261,7 @@ public class PgenSelectHandler extends InputHandlerDefaultImpl {
|
|||
PlatformUI.getWorkbench().getActiveWorkbenchWindow()
|
||||
.getShell()).setWatchBox((WatchBox) elSelected);
|
||||
PgenUtil.loadWatchBoxModifyTool(elSelected);
|
||||
return false;
|
||||
return false;
|
||||
} else if (elSelected instanceof Tcm) {
|
||||
PgenUtil.loadTcmTool(elSelected);
|
||||
}
|
||||
|
@ -475,7 +475,11 @@ public class PgenSelectHandler extends InputHandlerDefaultImpl {
|
|||
|
||||
}
|
||||
|
||||
else {
|
||||
else if (button == 3 && pgenrsc.getSelectedDE() != null) {
|
||||
// Right button click does not fall through to other handlers if
|
||||
// there is pgen element is selected
|
||||
return true;
|
||||
} else {
|
||||
|
||||
return false;
|
||||
|
||||
|
@ -1047,12 +1051,16 @@ public class PgenSelectHandler extends InputHandlerDefaultImpl {
|
|||
}
|
||||
trackExtrapPointInfoDlg = null;
|
||||
|
||||
if (pgenrsc.getSelectedDE() != null) {
|
||||
preempt = true;
|
||||
}
|
||||
|
||||
pgenrsc.removeGhostLine();
|
||||
ptSelected = false;
|
||||
pgenrsc.removeSelected();
|
||||
mapEditor.refresh();
|
||||
|
||||
// return false;
|
||||
return preempt;
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -184,44 +184,6 @@ public class PgenSinglePointDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( elem != null && ((SymbolAttrDlg)attrDlg).labelEnabled()){
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
String defaultTxt = "";
|
||||
if ( attrDlg instanceof VolcanoAttrDlg ){
|
||||
defaultTxt = ((VolcanoAttrDlg)attrDlg).getVolText();
|
||||
dec.setCollectionName("Volcano");
|
||||
}
|
||||
|
||||
//in case the label is enabled after symbol is placed.
|
||||
if (dec == null && ((SymbolAttrDlg)attrDlg).labelEnabled()){
|
||||
dec = new DECollection("labeledSymbol");
|
||||
dec.setPgenCategory(pgenCategory);
|
||||
dec.setPgenType(pgenType);
|
||||
dec.addElement(elem);
|
||||
drawingLayer.replaceElement(elem, dec);
|
||||
}
|
||||
|
||||
PgenUtil.setDrawingTextMode( true, ((LabeledSymbolAttrDlg)attrDlg).useSymbolColor(), defaultTxt, dec );
|
||||
dec = null;
|
||||
elem = null;
|
||||
|
||||
}
|
||||
else {
|
||||
if ( prevElem != null){
|
||||
usePrevColor = false;
|
||||
if ( prevElem.getParent().getPgenCategory().equalsIgnoreCase("OUTLOOK")){
|
||||
PgenUtil.loadOutlookDrawingTool();
|
||||
}
|
||||
prevElem = null;
|
||||
}
|
||||
else {
|
||||
elem = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -274,6 +236,62 @@ public class PgenSinglePointDrawingTool extends AbstractPgenDrawingTool {
|
|||
else return true;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int, int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable() || shiftDown ) return false;
|
||||
|
||||
if ( mouseButton == 3 ){
|
||||
// prevent the click going through to other handlers
|
||||
// in case adding labels to symbols or fronts.
|
||||
if ( elem != null && ((SymbolAttrDlg)attrDlg).labelEnabled()){
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
String defaultTxt = "";
|
||||
if ( attrDlg instanceof VolcanoAttrDlg ){
|
||||
defaultTxt = ((VolcanoAttrDlg)attrDlg).getVolText();
|
||||
dec.setCollectionName("Volcano");
|
||||
}
|
||||
|
||||
//in case the label is enabled after symbol is placed.
|
||||
if (dec == null && ((SymbolAttrDlg)attrDlg).labelEnabled()){
|
||||
dec = new DECollection("labeledSymbol");
|
||||
dec.setPgenCategory(pgenCategory);
|
||||
dec.setPgenType(pgenType);
|
||||
dec.addElement(elem);
|
||||
drawingLayer.replaceElement(elem, dec);
|
||||
}
|
||||
|
||||
PgenUtil.setDrawingTextMode( true, ((LabeledSymbolAttrDlg)attrDlg).useSymbolColor(), defaultTxt, dec );
|
||||
dec = null;
|
||||
elem = null;
|
||||
|
||||
}
|
||||
else {
|
||||
if ( prevElem != null){
|
||||
usePrevColor = false;
|
||||
if ( prevElem.getParent().getPgenCategory().equalsIgnoreCase("OUTLOOK")){
|
||||
PgenUtil.loadOutlookDrawingTool();
|
||||
}
|
||||
prevElem = null;
|
||||
}
|
||||
else {
|
||||
elem = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -111,48 +111,13 @@ public class PgenSpenesDrawingTool extends AbstractPgenDrawingTool {
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
if (attrDlg != null) attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// create a line
|
||||
elem = def.create( DrawableType.SPENES, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
attrDlg.setDrawableElement((DrawableElement)elem);
|
||||
// AttrSettings.getInstance().setSettings((DrawableElement)elem);
|
||||
|
||||
// add the product to PGEN resource
|
||||
drawingLayer.addElement( elem );
|
||||
|
||||
//System.out.println(USState.statesInGeometry(((Spenes)elem).toJTSPolygon()));
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else if ( button == 2 ){
|
||||
|
||||
return true;
|
||||
return false;
|
||||
|
||||
}
|
||||
else{
|
||||
|
@ -203,6 +168,59 @@ public class PgenSpenesDrawingTool extends AbstractPgenDrawingTool {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
if (attrDlg != null) attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// create a line
|
||||
elem = def.create( DrawableType.SPENES, (IAttribute)attrDlg,
|
||||
pgenCategory, pgenType, points, drawingLayer.getActiveLayer());
|
||||
|
||||
attrDlg.setDrawableElement((DrawableElement)elem);
|
||||
// AttrSettings.getInstance().setSettings((DrawableElement)elem);
|
||||
|
||||
// add the product to PGEN resource
|
||||
drawingLayer.addElement( elem );
|
||||
|
||||
//System.out.println(USState.statesInGeometry(((Spenes)elem).toJTSPolygon()));
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void clearPoints(){
|
||||
points.clear();
|
||||
}
|
||||
|
|
|
@ -413,6 +413,22 @@ public class PgenTcaTool extends AbstractPgenDrawingTool {
|
|||
// right mouse button pressed
|
||||
else if (button == 3) {
|
||||
|
||||
return true;
|
||||
|
||||
} else
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
switch (mode) {
|
||||
|
||||
case IDLE:
|
||||
|
@ -456,12 +472,12 @@ public class PgenTcaTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
|
||||
return true;
|
||||
|
||||
} else
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
|
@ -124,21 +124,7 @@ public class PgenTcmDrawingTool extends AbstractPgenDrawingTool {
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
points.clear();
|
||||
|
||||
}
|
||||
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -154,7 +140,37 @@ public class PgenTcmDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
points.clear();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
|
@ -272,32 +272,6 @@ public class PgenTextDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if (addLabelToSymbol){
|
||||
addLabelToSymbol = false;
|
||||
usePrevColor = false;
|
||||
if ( prevElem.getName().equalsIgnoreCase("labeledSymbol") ){
|
||||
if ( prevElem.getPrimaryDE() instanceof Symbol ) {
|
||||
PgenUtil.setDrawingSymbolMode( prevElem.getPrimaryDE().getPgenCategory(), prevElem.getPgenType(), false, null );
|
||||
}
|
||||
else if ( prevElem.getPrimaryDE() instanceof ComboSymbol ){
|
||||
PgenUtil.setDrawingSymbolMode( "Combo", prevElem.getPgenType(), false, null );
|
||||
}
|
||||
}
|
||||
else if ( prevElem instanceof DECollection && prevElem.getPgenCategory().equalsIgnoreCase("Front") ){
|
||||
PgenUtil.setDrawingFrontMode((Line)prevElem.getPrimaryDE());
|
||||
}
|
||||
else if ( prevElem.getName().equalsIgnoreCase(Outlook.OUTLOOK_LABELED_LINE)){
|
||||
PgenUtil.loadOutlookDrawingTool();
|
||||
}
|
||||
prevElem = null;
|
||||
}
|
||||
else {
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -379,7 +353,56 @@ public class PgenTextDrawingTool extends AbstractPgenDrawingTool {
|
|||
if ( !isResourceEditable()|| shiftDown ) return false;
|
||||
else return true;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see com.raytheon.viz.ui.input.IInputHandler#handleMouseUp(int, int, int)
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int mouseButton) {
|
||||
if ( !isResourceEditable()|| shiftDown ) return false;
|
||||
|
||||
// prevent the click going through to other handlers
|
||||
// in case adding labels to symbols or fronts.
|
||||
if ( mouseButton == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if (addLabelToSymbol){
|
||||
addLabelToSymbol = false;
|
||||
usePrevColor = false;
|
||||
if ( prevElem.getName().equalsIgnoreCase("labeledSymbol") ){
|
||||
if ( prevElem.getPrimaryDE() instanceof Symbol ) {
|
||||
PgenUtil.setDrawingSymbolMode( prevElem.getPrimaryDE().getPgenCategory(), prevElem.getPgenType(), false, null );
|
||||
}
|
||||
else if ( prevElem.getPrimaryDE() instanceof ComboSymbol ){
|
||||
PgenUtil.setDrawingSymbolMode( "Combo", prevElem.getPgenType(), false, null );
|
||||
}
|
||||
}
|
||||
else if ( prevElem instanceof DECollection && prevElem.getPgenCategory().equalsIgnoreCase("Front") ){
|
||||
PgenUtil.setDrawingFrontMode((Line)prevElem.getPrimaryDE());
|
||||
}
|
||||
else if ( prevElem.getName().equalsIgnoreCase(Outlook.OUTLOOK_LABELED_LINE)){
|
||||
PgenUtil.loadOutlookDrawingTool();
|
||||
}
|
||||
prevElem = null;
|
||||
}
|
||||
else {
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
/**
|
||||
* Check if a point is at right or left of the line.
|
||||
|
|
|
@ -154,20 +154,6 @@ public class PgenVectorDrawingTool extends AbstractPgenDrawingTool {
|
|||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( points.size() > 0 ) {
|
||||
|
||||
points.clear();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
attrDlg.close();
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
return true;
|
||||
|
||||
}
|
||||
|
@ -213,7 +199,37 @@ public class PgenVectorDrawingTool extends AbstractPgenDrawingTool {
|
|||
return false;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
mapEditor.refresh();
|
||||
|
||||
if ( points.size() > 0 ) {
|
||||
|
||||
points.clear();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
attrDlg.close();
|
||||
|
||||
PgenUtil.setSelectingMode();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if (!isResourceEditable() || shiftDown ) return false;
|
||||
|
|
|
@ -193,23 +193,35 @@ public class PgenWatchBoxAddDelCntyHandler extends InputHandlerDefaultImpl {
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
wbTool.resetMouseHandler();
|
||||
((WatchBoxAttrDlg)wbTool.attrDlg).getWatchInfoDlg().enableAllButtons(true);
|
||||
((WatchBoxAttrDlg)wbTool.attrDlg).enableDspBtn(true);
|
||||
((WatchBoxAttrDlg)wbTool.attrDlg).buttonBar.setEnabled(true);
|
||||
|
||||
return true;
|
||||
|
||||
return true;
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
wbTool.resetMouseHandler();
|
||||
((WatchBoxAttrDlg)wbTool.attrDlg).getWatchInfoDlg().enableAllButtons(true);
|
||||
((WatchBoxAttrDlg)wbTool.attrDlg).enableDspBtn(true);
|
||||
((WatchBoxAttrDlg)wbTool.attrDlg).buttonBar.setEnabled(true);
|
||||
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean handleMouseDownMove(int x, int y, int mouseButton) {
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
|
|
@ -163,32 +163,11 @@ public class PgenWatchBoxDrawingTool extends AbstractPgenDrawingTool {
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -246,12 +225,35 @@ public class PgenWatchBoxDrawingTool extends AbstractPgenDrawingTool {
|
|||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
attrDlg.close();
|
||||
attrDlg = null;
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
|
@ -133,29 +133,11 @@ public class PgenWatchBoxModifyTool extends PgenSelectingTool {
|
|||
}
|
||||
// clean up
|
||||
else if ( button == 3 ) {
|
||||
|
||||
// Close the attribute dialog and do the cleanup.
|
||||
if ( PgenWatchBoxModifyTool.this.attrDlg != null ) {
|
||||
PgenWatchBoxModifyTool.this.attrDlg.close();
|
||||
}
|
||||
|
||||
PgenWatchBoxModifyTool.this.attrDlg = null;
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
ptSelected = false;
|
||||
drawingLayer.removeSelected();
|
||||
mapEditor.refresh();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -230,55 +212,76 @@ public class PgenWatchBoxModifyTool extends PgenSelectingTool {
|
|||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button) {
|
||||
firstDown = null;
|
||||
if ( !isResourceEditable() ) return false;
|
||||
firstDown = null;
|
||||
if ( !isResourceEditable() ) return false;
|
||||
|
||||
// Finish the editing
|
||||
if (button == 1 && drawingLayer != null ){
|
||||
|
||||
// Create a copy of the currently editing watch box
|
||||
WatchBox el = (WatchBox) drawingLayer.getSelectedDE();
|
||||
// Finish the editing
|
||||
if (button == 1 && drawingLayer != null ){
|
||||
|
||||
if ( el != null ){
|
||||
|
||||
WatchBox newEl = (WatchBox)el.copy();
|
||||
// Create a copy of the currently editing watch box
|
||||
WatchBox el = (WatchBox) drawingLayer.getSelectedDE();
|
||||
|
||||
if ( ptSelected ) {
|
||||
if ( el != null ){
|
||||
|
||||
ptSelected = false;
|
||||
|
||||
// re-snap the new watch box
|
||||
resnapWatchBox( mapEditor, (WatchBox)ghostEl, newEl );
|
||||
((WatchBoxAttrDlg)PgenWatchBoxModifyTool.this.attrDlg).setWatchBox(newEl);
|
||||
WatchInfoDlg infoDlg = ((WatchBoxAttrDlg)PgenWatchBoxModifyTool.this.attrDlg).getWatchInfoDlg();
|
||||
if ( infoDlg != null && infoDlg.getShell()!= null ){
|
||||
if ( ! infoDlg.isCountyLock()){
|
||||
newEl.clearCntyList();
|
||||
infoDlg.clearCwaPane();
|
||||
}
|
||||
infoDlg.setStatesWFOs();
|
||||
}
|
||||
|
||||
// Replace the selected watch box with this new watch box
|
||||
drawingLayer.replaceElement(el, newEl);
|
||||
|
||||
// Set this new element as the currently selected element
|
||||
// Collections do not need to reset.
|
||||
if ( !(drawingLayer.getSelectedComp() instanceof DECollection )){
|
||||
drawingLayer.setSelected(newEl);
|
||||
}
|
||||
WatchBox newEl = (WatchBox)el.copy();
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
if ( ptSelected ) {
|
||||
|
||||
}
|
||||
|
||||
mapEditor.refresh();
|
||||
ptSelected = false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
// re-snap the new watch box
|
||||
resnapWatchBox( mapEditor, (WatchBox)ghostEl, newEl );
|
||||
((WatchBoxAttrDlg)PgenWatchBoxModifyTool.this.attrDlg).setWatchBox(newEl);
|
||||
WatchInfoDlg infoDlg = ((WatchBoxAttrDlg)PgenWatchBoxModifyTool.this.attrDlg).getWatchInfoDlg();
|
||||
if ( infoDlg != null && infoDlg.getShell()!= null ){
|
||||
if ( ! infoDlg.isCountyLock()){
|
||||
newEl.clearCntyList();
|
||||
infoDlg.clearCwaPane();
|
||||
}
|
||||
infoDlg.setStatesWFOs();
|
||||
}
|
||||
|
||||
// Replace the selected watch box with this new watch box
|
||||
drawingLayer.replaceElement(el, newEl);
|
||||
|
||||
// Set this new element as the currently selected element
|
||||
// Collections do not need to reset.
|
||||
if ( !(drawingLayer.getSelectedComp() instanceof DECollection )){
|
||||
drawingLayer.setSelected(newEl);
|
||||
}
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
|
||||
}
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
// Close the attribute dialog and do the cleanup.
|
||||
if ( PgenWatchBoxModifyTool.this.attrDlg != null ) {
|
||||
PgenWatchBoxModifyTool.this.attrDlg.close();
|
||||
}
|
||||
|
||||
PgenWatchBoxModifyTool.this.attrDlg = null;
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
ptSelected = false;
|
||||
drawingLayer.removeSelected();
|
||||
mapEditor.refresh();
|
||||
PgenUtil.setSelectingMode();
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -139,73 +139,84 @@ public class PgenWatchStatusLineDrawingTool extends AbstractPgenDrawingTool{
|
|||
|
||||
}
|
||||
else if ( button == 3 ) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
//close the line attr dialog
|
||||
if ( attrDlg != null ) attrDlg.close();
|
||||
attrDlg = null;
|
||||
|
||||
//return to watch modifying tool
|
||||
PgenUtil.loadWatchBoxModifyTool(wb);
|
||||
|
||||
//set the watch element as selected
|
||||
drawingLayer.setSelected(wb);
|
||||
|
||||
//open and initialize watch box attr dialog
|
||||
WatchBoxAttrDlg wbdlg = WatchBoxAttrDlg.getInstance(null);
|
||||
wbdlg.openSpecDlg( false );
|
||||
wbdlg.setDrawableElement(wb);
|
||||
wbdlg.setMouseHandlerName("Pgen Select");
|
||||
wbdlg.setAttrForDlg( (IAttribute)wb );
|
||||
wbdlg.enableButtons();
|
||||
wbdlg.setPgenCategory(wb.getPgenCategory());
|
||||
wbdlg.setPgenType( wb.getPgenType() );
|
||||
wbdlg.setDrawingLayer( drawingLayer );
|
||||
wbdlg.setMapEditor( mapEditor );
|
||||
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
|
||||
// create a status line
|
||||
Line statusLine = new Line(null, attrDlg.getColors(), attrDlg.getLineWidth(),
|
||||
1.0, false, false, points, ((ILine)attrDlg).getSmoothFactor(),FillPattern.SOLID,
|
||||
"Lines","POINTED_ARROW");
|
||||
|
||||
// add the line to watch DECollection
|
||||
((DECollection)wb.getParent()).add(statusLine);
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
return true;
|
||||
}
|
||||
else if ( button == 2 ){
|
||||
|
||||
return true;
|
||||
|
||||
}
|
||||
else{
|
||||
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* overrides the function in selecting tool
|
||||
*/
|
||||
@Override
|
||||
public boolean handleMouseUp(int x, int y, int button){
|
||||
if ( !drawingLayer.isEditable() || shiftDown ) return false;
|
||||
|
||||
if (button == 3) {
|
||||
|
||||
if ( points.size() == 0 ) {
|
||||
|
||||
//close the line attr dialog
|
||||
if ( attrDlg != null ) attrDlg.close();
|
||||
attrDlg = null;
|
||||
|
||||
//return to watch modifying tool
|
||||
PgenUtil.loadWatchBoxModifyTool(wb);
|
||||
|
||||
//set the watch element as selected
|
||||
drawingLayer.setSelected(wb);
|
||||
|
||||
//open and initialize watch box attr dialog
|
||||
WatchBoxAttrDlg wbdlg = WatchBoxAttrDlg.getInstance(null);
|
||||
wbdlg.openSpecDlg( false );
|
||||
wbdlg.setDrawableElement(wb);
|
||||
wbdlg.setMouseHandlerName("Pgen Select");
|
||||
wbdlg.setAttrForDlg( (IAttribute)wb );
|
||||
wbdlg.enableButtons();
|
||||
wbdlg.setPgenCategory(wb.getPgenCategory());
|
||||
wbdlg.setPgenType( wb.getPgenType() );
|
||||
wbdlg.setDrawingLayer( drawingLayer );
|
||||
wbdlg.setMapEditor( mapEditor );
|
||||
|
||||
|
||||
}
|
||||
else if ( points.size() < 2 ){
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
else {
|
||||
|
||||
// create a status line
|
||||
Line statusLine = new Line(null, attrDlg.getColors(), attrDlg.getLineWidth(),
|
||||
1.0, false, false, points, ((ILine)attrDlg).getSmoothFactor(),FillPattern.SOLID,
|
||||
"Lines","POINTED_ARROW");
|
||||
|
||||
// add the line to watch DECollection
|
||||
((DECollection)wb.getParent()).add(statusLine);
|
||||
|
||||
drawingLayer.removeGhostLine();
|
||||
points.clear();
|
||||
mapEditor.refresh();
|
||||
|
||||
}
|
||||
return true;
|
||||
}
|
||||
else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
|
|
Loading…
Add table
Reference in a new issue