Merge "VLab Issue #5413 - Changes for PGEN in D2D for mouse click" into omaha_pgen
Former-commit-id:2b36b2419e
[formerly 76b63bd71b9c38d5c85906df6be75db0b31fed8c] Former-commit-id:0f8d012034
This commit is contained in:
commit
3fa8a587cd
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