VLab Issue #5413 - Changes for PGEN in D2D for mouse click

commit 1a7bd6cd64d629e6e01b287cfa60b36bac081813
Author: Bingfan Yin <Bingfan.Yin@noaa.gov>
Date:   Mon Dec 15 08:45:20 2014 -0500

    Set perspective ID in PGEN session from palette.

commit bef2feeccf0adfa36ab578a35ecf6f48d604eaf0
Author: Bingfan Yin <Bingfan.Yin@noaa.gov>
Date:   Mon Dec 15 08:28:44 2014 -0500

    Changes to resolve mouse conflicts for PGEN in D2D. Also prevent PGEN
    showing in other perspectives if PGEN is in single mode. Fixed the PGEN
    symbol size issue when swapping in D2D.

Change-Id: Ie90747ce84a88c967da494fe90045eedd44ab50c

Former-commit-id: ff58674259 [formerly a87c0d2064fa325fd8f550b37734aa9ca63c1f9e]
Former-commit-id: eee0d49bde
This commit is contained in:
Bingfan Yin 2014-12-15 09:00:40 -05:00
parent 1b6aa1eac1
commit 8714ace477
48 changed files with 1842 additions and 1186 deletions

View file

@ -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;
}
}

View file

@ -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 ||

View file

@ -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 )

View file

@ -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
}
}
}
}
/**

View file

@ -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();
}
}
}

View file

@ -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

View file

@ -151,6 +151,9 @@ public class PgenAddPointAltHandler extends InputHandlerDefaultImpl {
return preempt;
}
else if ( button == 3 ){
return true;
}
else{

View file

@ -154,6 +154,9 @@ public class PgenAddPointHandler extends InputHandlerDefaultImpl {
return preempt;
}
else if ( button == 3 ){
return true;
}
else{
return false;

View file

@ -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;
}
}
}

View file

@ -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;
}

View file

@ -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

View file

@ -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();

View file

@ -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;
}
}
/**

View file

@ -126,7 +126,9 @@ public class PgenDeletePointHandler extends PgenSelectHandler{
return true;
}
else if ( button == 3 ){
return true;
}
else{
return false;

View file

@ -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
*/

View file

@ -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;
}
}
}

View file

@ -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();
}
}
}
}

View file

@ -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;
}
}
}
}

View file

@ -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();
}

View file

@ -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,

View file

@ -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;
}
}
}

View file

@ -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

View file

@ -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;

View file

@ -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;
}
}
}
}

View file

@ -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)
*

View file

@ -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;

View file

@ -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)
*

View file

@ -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;

View file

@ -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).

View file

@ -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();

View file

@ -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)

View file

@ -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

View file

@ -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;

View file

@ -156,7 +156,7 @@ public class PgenMultiSelectTool extends AbstractPgenDrawingTool {
// Keep in multi-selecting mode
// PgenUtil.setSelectingMode();
}
return false;
return true;
} else {

View file

@ -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)
*

View file

@ -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;

View file

@ -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;
}
}
/**

View file

@ -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;
}

View file

@ -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;
}
}
}
/**

View file

@ -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();
}

View file

@ -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)
*

View file

@ -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)
*

View file

@ -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.

View file

@ -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;

View file

@ -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;

View file

@ -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;
}
}
/*

View file

@ -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;
}
}
}

View file

@ -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)
*