public void selected(SelectEvent event) { if (this.wwd == null) return; if (!(this.wwd.getView() instanceof OrbitView)) return; OrbitView view = (OrbitView) this.wwd.getView(); if (this.viewControlsLayer.getHighlightedObject() != null) { this.viewControlsLayer.highlight(null); this.wwd.redraw(); // must redraw so the de-highlight can take effect } if (event.getMouseEvent() != null && event.getMouseEvent().isConsumed()) return; if (event.getTopObject() == null || event.getTopPickedObject().getParentLayer() != this.getParentLayer() || !(event.getTopObject() instanceof AVList)) return; String controlType = ((AVList) event.getTopObject()).getStringValue(AVKey.VIEW_OPERATION); if (controlType == null) return; ScreenAnnotation selectedObject = (ScreenAnnotation) event.getTopObject(); this.lastPickPoint = event.getPickPoint(); if (event.getEventAction().equals(SelectEvent.ROLLOVER)) { // Highlight on rollover this.viewControlsLayer.highlight(selectedObject); this.wwd.redraw(); } if (event.getEventAction().equals(SelectEvent.DRAG)) { // just consume drag events event.consume(); } else if (event.getEventAction().equals(SelectEvent.HOVER)) { // Highlight on hover this.viewControlsLayer.highlight(selectedObject); this.wwd.redraw(); } else if (event.getEventAction().equals(SelectEvent.LEFT_PRESS) || (event.getEventAction().equals(SelectEvent.DRAG) && controlType.equals(AVKey.VIEW_PAN)) || (event.getEventAction().equals(SelectEvent.DRAG) && controlType.equals(AVKey.VIEW_LOOK))) { MyLogger.specialLog(SpecialLog.CONTROLS); // Handle left press on controls this.pressedControl = selectedObject; this.pressedControlType = controlType; // Consume drag events, but do not consume left press events. It is not necessary to consume // left press // events here, and doing so prevents the WorldWindow from gaining focus. if (event.getEventAction().equals(SelectEvent.DRAG)) event.consume(); } else if (event.getEventAction().equals(SelectEvent.LEFT_CLICK) || event.getEventAction().equals(SelectEvent.LEFT_DOUBLE_CLICK) || event.getEventAction().equals(SelectEvent.DRAG_END)) { if (controlType.equals("trash it")) { SettingsDialog d = new SettingsDialog(appFrame, globalSettings); // GoToDialog d = new GoToDialog(appFrame); d.setVisible(true); // event.consume(); } // if (controlType.equals("auxiliary")) { // // AccountDialog d = new AccountDialog(appFrame); // d.setVisible(true); // if (d.ok) { // appFrame.setTitle("Chunkmapper"); // ViewControlsLayer.singleton.hideAuxiliaryButton(); // } // } // Release pressed control this.pressedControl = null; resetOrbitView(view); view.firePropertyChange(AVKey.VIEW, null, view); } // Keep pressed control highlighted - overrides rollover non currently pressed controls if (this.pressedControl != null) { this.viewControlsLayer.highlight(this.pressedControl); this.wwd.redraw(); } }