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:
Nathan Jensen 2015-01-13 16:48:36 +00:00 committed by Gerrit Code Review
commit 3fa8a587cd
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)
*