diff --git a/.classpath b/.classpath
index 041e5e65..494aa0a4 100644
--- a/.classpath
+++ b/.classpath
@@ -3,10 +3,19 @@
-
+
+
+
+
+
+
-
+
+
+
+
+
@@ -49,5 +58,34 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.gitignore b/.gitignore
index 78010540..c87e841b 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-/classes
-/package
-/nbproject/private/
-/build/
-/dist/
\ No newline at end of file
+*/target/**
+
+/classes/
+/target/
+/.classpath
diff --git a/.project b/.project
index 1e84f0c8..fead86a5 100644
--- a/.project
+++ b/.project
@@ -10,8 +10,14 @@
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+ org.eclipse.m2e.core.maven2Nature
org.eclipse.jdt.core.javanature
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index 1759f946..39595298 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -1,9 +1,9 @@
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
-org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
-org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
@@ -18,6 +18,7 @@ org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
@@ -59,6 +60,7 @@ org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=ignore
org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
@@ -84,7 +86,9 @@ org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disa
org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=ignore
-org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.compiler.processAnnotations=disabled
+org.eclipse.jdt.core.compiler.release=disabled
+org.eclipse.jdt.core.compiler.source=1.8
org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
diff --git a/build.xml b/build.xml
index c6dd5352..f2808829 100644
--- a/build.xml
+++ b/build.xml
@@ -6,7 +6,7 @@
############################ -->
-
+
+ 4.0.0
+ com.bbn.openmap
+ openmap
+ jar
+ 5.1.19-SNAPSHOT
+ openmap
+
+
+ UTF-8
+ 1.8
+ 1.8
+
+
+
+
+
+ junit
+ junit
+ 4.12
+
+ provided
+
+
+
+
+
+
+
+
+ ./src/openmap/
+
+ **/*.png
+ **/*.gif
+ **/*.jpg
+
+
+
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ **/jai/**
+ **/geotiff/**
+
+
+
+
+ org.codehaus.mojo
+ build-helper-maven-plugin
+ 3.0.0
+
+
+ generate-sources
+
+ add-source
+
+
+
+ ./src/ext
+
+
+
+
+
+
+ ./src/openmap/com
+
+
+
diff --git a/src/openmap/com/bbn/openmap/event/AbstractMouseMode.java b/src/openmap/com/bbn/openmap/event/AbstractMouseMode.java
index 94f91176..36354703 100644
--- a/src/openmap/com/bbn/openmap/event/AbstractMouseMode.java
+++ b/src/openmap/com/bbn/openmap/event/AbstractMouseMode.java
@@ -28,6 +28,7 @@
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
+import java.awt.geom.Point2D;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeSupport;
import java.io.Serializable;
@@ -45,6 +46,7 @@
import com.bbn.openmap.MapBean;
import com.bbn.openmap.MouseDelegator;
import com.bbn.openmap.OMComponent;
+import com.bbn.openmap.proj.Proj;
import com.bbn.openmap.util.PropUtils;
import com.bbn.openmap.util.propertyEditor.OptionPropertyEditor;
@@ -108,6 +110,8 @@ public class AbstractMouseMode
protected boolean mouseWheelListener = true;
+ protected boolean mouseWheelScrollLikeOSM = true;
+
protected boolean noMouseWheelListenerTimer = false;
protected String prettyName;
@@ -176,6 +180,12 @@ public class AbstractMouseMode
*/
public static final String MouseWheelTimerIntervalProperty = "mouseWheelTimerInterval";
+ /**
+ * scrollwhell zoom like OSM and Google Maps, ie mouse lat,lon is mapped to
+ * same x,y during scrollwheel zoom
+ */
+ public static final String MouseWheelScrollLikeOSMProperty = "mouseWheelScrollLikeOSM";
+
/**
* Construct an AbstractMouseMode. Default constructor, allocates the mouse
* support object.
@@ -460,7 +470,9 @@ public void mouseMoved(MouseEvent e) {
* Invoked from the MouseWheelListener interface.
*/
public void mouseWheelMoved(MouseWheelEvent e) {
- if (mouseWheelListener) {
+ if (mouseWheelListener && mouseWheelScrollLikeOSM) {
+ scrollWheelZoomLikeOSM(e);
+ } else if (mouseWheelListener) {
int rot = e.getWheelRotation();
if (e.getSource() instanceof MapBean) {
MapBean mb = (MapBean) e.getSource();
@@ -680,6 +692,9 @@ public void setProperties(String prefix, Properties props) {
noMouseWheelListenerTimer = PropUtils.booleanFromProperties(props, prefix + NoMouseWheelListenerTimerProperty, noMouseWheelListenerTimer);
mouseWheelTimerInterval = PropUtils.intFromProperties(props, prefix + MouseWheelTimerIntervalProperty, mouseWheelTimerInterval);
+
+ mouseWheelScrollLikeOSM = PropUtils.booleanFromProperties(props, prefix
+ + MouseWheelScrollLikeOSMProperty, mouseWheelScrollLikeOSM);
}
public Properties getProperties(Properties props) {
@@ -766,6 +781,8 @@ public Properties getPropertyInfo(Properties props) {
"Setting for the wait interval for the mouse wheel timer",
null);
+ PropUtils.setI18NPropertyInfo(i18n, props, thisClass, MouseWheelScrollLikeOSMProperty, "Mouse Wheel Zoom like OSM", "Setting for using OSM like zoom", "com.bbn.openmap.util.propertyEditor.YesNoPropertyEditor");
+
StringBuffer cOptions = new StringBuffer();
Field[] cFields = Cursor.class.getFields();
for (int i = 0; i < cFields.length; i++) {
@@ -876,4 +893,35 @@ public boolean isNoMouseWheelListenerTimer() {
public void setNoMouseWheelListenerTimer(boolean noMouseWheelListenerTimer) {
this.noMouseWheelListenerTimer = noMouseWheelListenerTimer;
}
+
+ /**
+ * Zoom like G maps and OSM keeping the mouse x,y -> lat,lon constant between
+ * scale changes instead of just zooming with the center fixed. Avoids having
+ * to constantly manually recenter the map before/after zooming.
+ */
+ protected void scrollWheelZoomLikeOSM(MouseWheelEvent e) {
+ if (mouseWheelListener && e.getSource() instanceof MapBean) {
+ boolean direction = isZoomWhenMouseWheelUp();
+ float zoomIn = 1.1f;
+ float zoomOut = .9f;
+ float amount = zoomIn;
+ int rot = e.getWheelRotation();
+ if ((direction && rot < 0) || (!direction && rot > 0)) {
+ amount = zoomOut;
+ }
+ // keep cursor x,y pointing to the same lat,lon after scale
+ // has been changed
+ MapBean mapBean = (MapBean) e.getSource();
+ Proj proj = (Proj) mapBean.getProjection().makeClone();
+ Point2D mouseLatLon = mapBean.getCoordinates(e);
+ proj.setScale(mapBean.getScale() * amount);
+ Point2D newXyCenter = proj.forward(proj.getCenter());
+ Point2D newXy = proj.forward(mouseLatLon);
+ Point2D centerWithOffset = new Point2D.Double(newXyCenter.getX()
+ + (newXy.getX() - e.getX()), newXyCenter.getY() + (newXy.getY() - e.getY()));
+ proj.setCenter(proj.inverse(centerWithOffset));
+ mapBean.setProjection(proj);
+ }
+ }
+
}
\ No newline at end of file
diff --git a/src/openmap/com/bbn/openmap/event/NavMouseMode.java b/src/openmap/com/bbn/openmap/event/NavMouseMode.java
index d7ba1927..a6d2d545 100644
--- a/src/openmap/com/bbn/openmap/event/NavMouseMode.java
+++ b/src/openmap/com/bbn/openmap/event/NavMouseMode.java
@@ -316,6 +316,9 @@ public void mouseDragged(MouseEvent e) {
}
super.mouseDragged(e);
+ if (point1 == null) {
+ return;
+ }
Object obj = e.getSource();
diff --git a/src/openmap/com/bbn/openmap/gui/LayerStatusPane.java b/src/openmap/com/bbn/openmap/gui/LayerStatusPane.java
index f30a1b04..68899726 100644
--- a/src/openmap/com/bbn/openmap/gui/LayerStatusPane.java
+++ b/src/openmap/com/bbn/openmap/gui/LayerStatusPane.java
@@ -26,6 +26,7 @@
import javax.swing.ButtonGroup;
import javax.swing.ImageIcon;
+import javax.swing.SwingUtilities;
import com.bbn.openmap.Layer;
import com.bbn.openmap.LayerHandler;
@@ -74,10 +75,20 @@ protected LayerStatusPane(String title) {
public void updateLayerStatus(LayerStatusEvent evt) {
switch (evt.getStatus()) {
case LayerStatusEvent.START_WORKING:
- onoffButton.setSelectedIcon(layerWorking);
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ onoffButton.setSelectedIcon(layerWorking);
+ }
+ });
break;
case LayerStatusEvent.FINISH_WORKING:
- onoffButton.setSelectedIcon(layerDone);
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ onoffButton.setSelectedIcon(layerDone);
+ }
+ });
break;
}
}
diff --git a/src/openmap/com/bbn/openmap/gui/ScaleTextPanel.java b/src/openmap/com/bbn/openmap/gui/ScaleTextPanel.java
index 5eadb86e..80f3070c 100644
--- a/src/openmap/com/bbn/openmap/gui/ScaleTextPanel.java
+++ b/src/openmap/com/bbn/openmap/gui/ScaleTextPanel.java
@@ -27,6 +27,7 @@
import java.io.Serializable;
import javax.swing.JTextField;
+import javax.swing.SwingUtilities;
import com.bbn.openmap.I18n;
import com.bbn.openmap.MapBean;
@@ -102,12 +103,18 @@ public synchronized void setProjection(Projection aProjection) {
+ String.valueOf(projection.getScale()) + "\"");
}
- String oldScale = scaleField.getText();
- String newScale = df.format(projection.getScale());
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ String oldScale = scaleField.getText();
+ String newScale = df.format(projection.getScale());
- if (!oldScale.equals(newScale)) {
- scaleField.setText("1:" + newScale);
- }
+ if (!oldScale.equals(newScale)) {
+ scaleField.setText("1:" + newScale);
+ }
+
+ }
+ });
}
/**
diff --git a/src/openmap/com/bbn/openmap/gui/StatusLightPanel.java b/src/openmap/com/bbn/openmap/gui/StatusLightPanel.java
index 8944d042..ecd22668 100644
--- a/src/openmap/com/bbn/openmap/gui/StatusLightPanel.java
+++ b/src/openmap/com/bbn/openmap/gui/StatusLightPanel.java
@@ -252,7 +252,7 @@ public void reset() {
* @param icon the icon light representing the status.
*/
protected void setLayerStatus(Layer layer, Icon icon) {
- JButton statusgif = statusLights.get(layer);
+ JButton statusgif = statusLights.get(layer);
if (statusgif != null) {
statusgif.setIcon(icon);
@@ -288,19 +288,29 @@ protected void setLayerStatus(Layer layer, Icon icon) {
*
* @param evt LayerStatusEvent
*/
- public void updateLayerStatus(LayerStatusEvent evt) {
+ public void updateLayerStatus(final LayerStatusEvent evt) {
switch (evt.getStatus()) {
// these need to be coordinated correctly by the Layer,
// otherwise
// we'll get phantom status ticks or maybe an ArrayOutOfBounds
// negative...
case LayerStatusEvent.START_WORKING:
- setLayerStatus((Layer) evt.getSource(), redIcon);
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ setLayerStatus((Layer) evt.getSource(), redIcon);
+ }
+ });
break;
case LayerStatusEvent.STATUS_UPDATE:
break;
case LayerStatusEvent.FINISH_WORKING:
- setLayerStatus((Layer) evt.getSource(), greenIcon);
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ setLayerStatus((Layer) evt.getSource(), greenIcon);
+ }
+ });
break;
default:
System.err.println("InformationDelegator.updateLayerStatus(): "
diff --git a/src/openmap/com/bbn/openmap/gui/menu/ProjectionMenu.java b/src/openmap/com/bbn/openmap/gui/menu/ProjectionMenu.java
index 4366abcb..a5263c29 100644
--- a/src/openmap/com/bbn/openmap/gui/menu/ProjectionMenu.java
+++ b/src/openmap/com/bbn/openmap/gui/menu/ProjectionMenu.java
@@ -34,6 +34,7 @@
import javax.swing.ButtonGroup;
import javax.swing.JMenuItem;
import javax.swing.JRadioButtonMenuItem;
+import javax.swing.SwingUtilities;
import com.bbn.openmap.MapBean;
import com.bbn.openmap.event.ProjectionEvent;
@@ -124,22 +125,27 @@ public void propertyChange(PropertyChangeEvent pce) {
*
* @param e ProjectionEvent
*/
- public void projectionChanged(ProjectionEvent e) {
+ public void projectionChanged(final ProjectionEvent e) {
- Projection newProj = e.getProjection();
+ final Projection newProj = e.getProjection();
if (logger.isLoggable(Level.FINE)) {
logger.fine(newProj != null ? newProj.toString() : "null");
}
- if (newProj != null
- && (projection == null || (!projection.equals(newProj)))) {
- setProjection((Projection) newProj.makeClone());
- Object source = e.getSource();
- if (source instanceof Component) {
- projComponent = (Component) source;
- }
- }
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ if (newProj != null
+ && (projection == null || (!projection.equals(newProj)))) {
+ setProjection((Projection) newProj.makeClone());
+ Object source = e.getSource();
+ if (source instanceof Component) {
+ projComponent = (Component) source;
+ }
+ }
+ }
+ });
}
/**
diff --git a/src/openmap/com/bbn/openmap/io/BinaryBufferedFile.java b/src/openmap/com/bbn/openmap/io/BinaryBufferedFile.java
index 10a0c76c..1512b6b2 100644
--- a/src/openmap/com/bbn/openmap/io/BinaryBufferedFile.java
+++ b/src/openmap/com/bbn/openmap/io/BinaryBufferedFile.java
@@ -488,7 +488,7 @@ public void readIntegerArray(int vec[], int offset, int len)
for (int i = 0; i < reallyread; i++) {
vec[offset++] = MoreMath.BuildIntegerBE(buffer, cursor);
cursor += 4;
- }
+ }
} else {
for (int i = 0; i < reallyread; i++) {
vec[offset++] = MoreMath.BuildIntegerLE(buffer, cursor);
@@ -582,4 +582,13 @@ public String readFixedLengthString(int length) throws EOFException,
}
return retstring;
}
+
+ @Override
+ public void close() throws IOException {
+ super.close();
+ firstbyteoffset = 0;
+ bytesinbuffer = 0;
+ curptr = 0;
+ }
+
}
\ No newline at end of file
diff --git a/src/openmap/com/bbn/openmap/layer/BufferedLayer.java b/src/openmap/com/bbn/openmap/layer/BufferedLayer.java
index b724493a..b650dcd5 100644
--- a/src/openmap/com/bbn/openmap/layer/BufferedLayer.java
+++ b/src/openmap/com/bbn/openmap/layer/BufferedLayer.java
@@ -46,6 +46,7 @@
import javax.swing.JCheckBox;
import javax.swing.JPanel;
import javax.swing.JTabbedPane;
+import javax.swing.SwingUtilities;
import com.bbn.openmap.BufferedMapBean;
import com.bbn.openmap.Layer;
@@ -372,9 +373,14 @@ public Paint getBckgrnd(Paint paint) {
* necessary.
*/
@Override
- public void projectionChanged(ProjectionEvent pevent) {
+ public void projectionChanged(final ProjectionEvent pevent) {
// Just pass it on, let the layers decide if they have to update.
- mapBean.setProjection(pevent.getProjection());
+ SwingUtilities.invokeLater(new Runnable() {
+ @Override
+ public void run() {
+ mapBean.setProjection(pevent.getProjection());
+ }
+ });
}
/**
diff --git a/src/openmap/com/bbn/openmap/layer/shape/SpatialIndex.java b/src/openmap/com/bbn/openmap/layer/shape/SpatialIndex.java
index dac6af02..e39377fa 100644
--- a/src/openmap/com/bbn/openmap/layer/shape/SpatialIndex.java
+++ b/src/openmap/com/bbn/openmap/layer/shape/SpatialIndex.java
@@ -1138,6 +1138,8 @@ protected void indexPolygons(InputStream is, long ptr, OutputStream os) {
polyBounds = readBox(recBuf, 4);
} else {
polyBounds = new ESRIBoundingBox();
+ polyBounds.min = new ESRIPoint();
+ polyBounds.max = new ESRIPoint();
}
ptr += recLengthBytes + 8;
diff --git a/src/openmap/com/bbn/openmap/layer/vpf/VPFConfig.java b/src/openmap/com/bbn/openmap/layer/vpf/VPFConfig.java
index c58ee139..c3f5de44 100644
--- a/src/openmap/com/bbn/openmap/layer/vpf/VPFConfig.java
+++ b/src/openmap/com/bbn/openmap/layer/vpf/VPFConfig.java
@@ -374,7 +374,7 @@ public void valueChanged(TreeSelectionEvent e) {
@SuppressWarnings("unchecked")
protected void loadCurrentFeatures(DefaultMutableTreeNode top, String featureName, LayerGraphicWarehouseSupport warehouse) {
- Enumeration treeEnum = top.children();
+ Enumeration> treeEnum = top.children();
while (treeEnum.hasMoreElements()) {
DefaultMutableTreeNode node = (DefaultMutableTreeNode) treeEnum.nextElement();
Object obj = node.getUserObject();
diff --git a/src/openmap/com/bbn/openmap/omGraphics/OMDistance.java b/src/openmap/com/bbn/openmap/omGraphics/OMDistance.java
index 60e7b991..9decfd4d 100644
--- a/src/openmap/com/bbn/openmap/omGraphics/OMDistance.java
+++ b/src/openmap/com/bbn/openmap/omGraphics/OMDistance.java
@@ -34,7 +34,6 @@
import com.bbn.openmap.proj.LineCoordinateGenerator;
import com.bbn.openmap.proj.ProjMath;
import com.bbn.openmap.proj.Projection;
-import com.bbn.openmap.util.Debug;
import com.bbn.openmap.util.DeepCopyUtil;
/**
@@ -260,6 +259,10 @@ public boolean generate(Projection proj) {
* @param g java.awt.Graphics to paint the poly onto.
*/
public void render(Graphics g) {
+ if (!isVisible()) {
+ return;
+ }
+
super.render(g);
if (!paintOnlyPoly) {
diff --git a/src/openmap/com/bbn/openmap/omGraphics/OMPoly.java b/src/openmap/com/bbn/openmap/omGraphics/OMPoly.java
index 56c6c1f8..118ec16a 100644
--- a/src/openmap/com/bbn/openmap/omGraphics/OMPoly.java
+++ b/src/openmap/com/bbn/openmap/omGraphics/OMPoly.java
@@ -758,7 +758,10 @@ public boolean shouldRenderFill() {
* @param g java.awt.Graphics to paint the poly onto.
*/
public void render(Graphics g) {
-
+ if (!isVisible()) {
+ return;
+ }
+
if (getShape() != null) {
super.render(g);
diff --git a/src/openmap/com/bbn/openmap/omGraphics/OMRangeRings.java b/src/openmap/com/bbn/openmap/omGraphics/OMRangeRings.java
index 5b39a483..d5ee44b3 100755
--- a/src/openmap/com/bbn/openmap/omGraphics/OMRangeRings.java
+++ b/src/openmap/com/bbn/openmap/omGraphics/OMRangeRings.java
@@ -323,6 +323,9 @@ public boolean generate(Projection proj) {
* @param g Graphics context to render into
*/
public void render(Graphics g) {
+ if (!isVisible()) {
+ return;
+ }
super.render(g);
drawingAttributes.setFrom(this);
diff --git a/src/openmap/com/bbn/openmap/util/BrowserLauncher2WebBrowser.java b/src/openmap/com/bbn/openmap/util/BrowserLauncher2WebBrowser.java
index dcf63398..97a1d316 100644
--- a/src/openmap/com/bbn/openmap/util/BrowserLauncher2WebBrowser.java
+++ b/src/openmap/com/bbn/openmap/util/BrowserLauncher2WebBrowser.java
@@ -22,9 +22,16 @@
package com.bbn.openmap.util;
-import edu.stanford.ejalbert.BrowserLauncher;
-import edu.stanford.ejalbert.exception.BrowserLaunchingInitializingException;
-import edu.stanford.ejalbert.exception.UnsupportedOperatingSystemException;
+import static java.util.logging.Level.*;
+
+import java.awt.Desktop;
+import java.net.URI;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+
+//import edu.stanford.ejalbert.BrowserLauncher;
+//import edu.stanford.ejalbert.exception.BrowserLaunchingInitializingException;
+//import edu.stanford.ejalbert.exception.UnsupportedOperatingSystemException;
/**
* A WebBrowser implementation that uses BrowserLauncher2. Requires the
@@ -35,22 +42,24 @@
*/
public class BrowserLauncher2WebBrowser extends WebBrowser {
- BrowserLauncher browserLauncher;
+ private static Logger log = Logger.getLogger(BrowserLauncher2WebBrowser.class.getName());
+
+ // BrowserLauncher browserLauncher;
/**
* Create a web browser that delegates launching to BrowserLauncher2.
*
*/
public BrowserLauncher2WebBrowser() {
- try {
- browserLauncher = new BrowserLauncher();
- } catch (BrowserLaunchingInitializingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (UnsupportedOperatingSystemException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
+ // try {
+ // browserLauncher = new BrowserLauncher();
+ // } catch (BrowserLaunchingInitializingException e) {
+ // // TODO Auto-generated catch block
+ // e.printStackTrace();
+ // } catch (UnsupportedOperatingSystemException e) {
+ // // TODO Auto-generated catch block
+ // e.printStackTrace();
+ // }
}
/**
@@ -60,8 +69,16 @@ public BrowserLauncher2WebBrowser() {
* @param urlString URL
*
*/
+ // public void launch(String urlString) {
+ // browserLauncher.openURLinBrowser(urlString);
+ // }
+
public void launch(String urlString) {
- browserLauncher.openURLinBrowser(urlString);
+ try {
+ Desktop.getDesktop().browse(new URI(urlString));
+ } catch (Exception e) {
+ log.log(SEVERE, "Could not open url " + urlString, e);
+ }
}
}
\ No newline at end of file