Coder Social home page Coder Social logo

locationtech / udig-platform Goto Github PK

View Code? Open in Web Editor NEW
186.0 186.0 132.0 243.48 MB

uDig parent project containing all core components. More plugins can be found in community repos: http://github.com/uDig-Community

Home Page: http://udig.refractions.net

Ruby 0.01% Shell 0.13% HTML 13.64% NSIS 0.06% CSS 1.96% XSLT 0.06% Scala 0.12% Java 84.00% Scheme 0.01% Batchfile 0.01%

udig-platform's People

Contributors

akater320 avatar cliffbroadbent avatar dependabot[bot] avatar egouge avatar fgdrf avatar francescopagnamenta avatar guymers avatar isy233 avatar jaan-git avatar jhudson avatar jodygarnett avatar kassid avatar kengu avatar levi-putna avatar markles avatar mcfoi avatar moovida avatar mpazos avatar msementsov-ibk avatar nazchan avatar nprigour avatar olsmn avatar paulpfeiffer avatar pjessup avatar scotthendo avatar sloob avatar sschulz92 avatar tomsontom avatar william-v4 avatar ybnkv avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

udig-platform's Issues

On MacOSX osgi.configuration.area.default is set

to $LOCALAPPDATA$/uDig/configuration althought the property is defined only for OS win32 (see features/org.locationtech.udig-product/org.locationtech.udig-product.product).

Expectation : This property is only set on Windows platform

Table View filter reset if content of table changed

Current behavior: If the content has changed everything in the view is reseted. The typed filter (which may be complex) expression is removed and the user has to type it again and again. After each refresh-event the filter is gone.

Expectation: If the content of a featureCollection changed (e.g. one of MemoryDataStore) the data table should be refreshed while the filter of the table shouldn't.

Maybe it is also possible to keep the filter, if the user switches layer-selection in Layers View and the featuretype is the same.

Canceling edit with Esc leaves polygon/linestring tool in inconsistent state.

To reproduce:

  1. Activate the polygon tool with advanced features enabled in preferences.
  2. Click on an existing polygon.
  3. Press Esc to cancel the edit.
  4. Attempt to create a polygon. The accept behaviours - double-click or pressing Return - will be rejected with an exception.
  5. Switching out of the tool and switching back resolves the issue.

!ENTRY org.locationtech.udig.tools.edit 1 0 2019-03-19 11:48:07.169 !MESSAGE !STACK 0 java.lang.NullPointerException: Fid must not be null at org.locationtech.udig.project.command.provider.FIDFeatureProvider.<init>(FIDFeatureProvider.java:33) at org.locationtech.udig.project.internal.commands.edit.SetAttributeCommand.<init>(SetAttributeCommand.java:78) at org.locationtech.udig.project.internal.commands.edit.SetGeometryCommand.<init>(SetGeometryCommand.java:68) at org.locationtech.udig.tools.edit.behaviour.accept.AcceptChangesBehaviour.processIntoCommands(AcceptChangesBehaviour.java:269) at org.locationtech.udig.tools.edit.behaviour.accept.AcceptChangesBehaviour.getCommand(AcceptChangesBehaviour.java:170) at org.locationtech.udig.tools.edit.BehaviourCommand.execute(BehaviourCommand.java:53) at org.locationtech.udig.project.command.CommandManager$Executor.execute(CommandManager.java:395) at org.locationtech.udig.project.command.CommandManager$Executor.run(CommandManager.java:326) at org.locationtech.udig.project.command.CommandManager$Executor.run(CommandManager.java:312) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:56)

Error dialog displayed when creating layer.

An error dialog is displayed when creating a layer if the last used tool was from the "Create" category.

To reproduce:

  1. Load a vector layer in the editor. e.g. Layer > Create
  2. Active any of the "Create ..." tools. e.g. "Create Line"
  3. Close all editor tabs.
  4. Create a new vector layer. i.e. Layer > Create
    --- (DO NOT use the default layer name. This is likely to cause an NPE if another layer already has the same name.)
  5. An error dialog is displayed.

I think the dialog is erroneous. The new layer is created correctly and the edit tool works as expected.

In Shapefile layers, uncommitted features are affected by all operations.

When editing a shapefile layer, uncommitted features are affected by (almost) all edit operations.
Examples:
Select any feature (e.g. polygon) in a shape file layer. That polygon plus all uncommitted polygons will be selected.
Attempt to delete any feature in a shapefile layer. That polygon plus all uncommitted polygons will be deleted.
Attempt to move/modify the geometry of any feature. All uncommitted features will be assigned a copy of the same geometry. The result is multiple features stacked on top of each other.

This seems to be caused by GeoTools not propagating the filter/query to the DiffFeatureReader. All features in the current transaction will be added to the returned iterator.
ContentFeatureSource.java

IllegalStateException in SetLayerName Interceptor (IGeoResource.getInfo())

While adding a layer to the map a IllegalStateException is thrown running the SetLayerName Interceptor.

Stacktrace:
!ENTRY org.locationtech.udig.project 1 0 2017-08-23 13:24:18.527
!MESSAGE Error running interceptor: SetLayerName
!STACK 0
java.lang.IllegalStateException: Lookup of getInfo not available from the display thread
	at org.locationtech.udig.catalog.IGeoResource.getInfo(IGeoResource.java:217)
	at org.locationtech.udig.project.internal.impl.SetLayerNameInterceptor.run(SetLayerNameInterceptor.java:29)
	at org.locationtech.udig.project.internal.impl.LayerFactoryImpl.runLayerCreatedInterceptor(LayerFactoryImpl.java:430)
	at org.locationtech.udig.project.internal.impl.LayerFactoryImpl.createLayer(LayerFactoryImpl.java:409)
	at org.locationtech.udig.printing.model.impl.MapGraphicBoxPrinter.setMapGraphic(MapGraphicBoxPrinter.java:292)
	at org.locationtech.udig.printing.model.impl.MapGraphicBoxPrinter.load(MapGraphicBoxPrinter.java:244)
	at org.locationtech.udig.printing.model.impl.ModelFactoryImpl.createBoxPrinterFromString(ModelFactoryImpl.java:298)
	at org.locationtech.udig.printing.model.impl.ModelFactoryImpl.createFromString(ModelFactoryImpl.java:103)
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.createFromString(XMLHelperImpl.java:1615)
	at org.eclipse.emf.ecore.xmi.impl.XMLHelperImpl.setValue(XMLHelperImpl.java:1156)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setFeatureValue(XMLHandler.java:2692)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.setAttribValue(XMLHandler.java:2751)
	at org.eclipse.emf.ecore.xmi.impl.SAXXMIHandler.handleObjectAttribs(SAXXMIHandler.java:79)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromFactory(XMLHandler.java:2229)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObjectFromFeatureType(XMLHandler.java:2195)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.createObject(XMLHandler.java:2071)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.createObject(XMIHandler.java:128)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.handleFeature(XMLHandler.java:1876)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.processElement(XMLHandler.java:1030)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.processElement(XMIHandler.java:81)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:1008)
	at org.eclipse.emf.ecore.xmi.impl.XMLHandler.startElement(XMLHandler.java:719)
	at org.eclipse.emf.ecore.xmi.impl.XMIHandler.startElement(XMIHandler.java:163)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.startElement(AbstractSAXParser.java:509)
	at com.sun.org.apache.xerces.internal.parsers.AbstractXMLDocumentParser.emptyElement(AbstractXMLDocumentParser.java:182)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanStartElement(XMLDocumentFragmentScannerImpl.java:1342)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2770)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:606)
	at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:510)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848)
	at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777)
	at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
	at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:649)
	at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl.parse(SAXParserImpl.java:333)
	at org.eclipse.emf.ecore.xmi.impl.XMLLoadImpl.load(XMLLoadImpl.java:175)
	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doLoad(XMLResourceImpl.java:261)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1518)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.load(ResourceImpl.java:1297)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoad(ResourceSetImpl.java:259)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.demandLoadHelper(ResourceSetImpl.java:274)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getResource(ResourceSetImpl.java:377)
	at org.eclipse.emf.ecore.resource.impl.ResourceSetImpl.getEObject(ResourceSetImpl.java:220)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:199)
	at org.eclipse.emf.ecore.util.EcoreUtil.resolve(EcoreUtil.java:259)
	at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eResolveProxy(BasicEObjectImpl.java:1473)
	at org.eclipse.emf.ecore.util.EcoreEList.resolveProxy(EcoreEList.java:206)
	at org.eclipse.emf.ecore.util.EcoreEList.resolve(EcoreEList.java:161)
	at org.eclipse.emf.ecore.util.EObjectWithInverseResolvingEList.resolve(EObjectWithInverseResolvingEList.java:93)
	at org.eclipse.emf.common.util.BasicEList.get(BasicEList.java:348)
	at org.locationtech.udig.project.internal.impl.SynchronizedEObjectWithInverseResolvingEList.get(SynchronizedEObjectWithInverseResolvingEList.java:75)
	at org.eclipse.emf.ecore.util.EcoreEList.toArray(EcoreEList.java:216)
	at java.util.Collections$UnmodifiableCollection.toArray(Collections.java:1058)
	at java.util.ArrayList.<init>(ArrayList.java:164)
	at org.locationtech.udig.project.internal.provider.ProjectItemProvider.getConcreteChildren(ProjectItemProvider.java:175)
	at org.locationtech.udig.project.internal.provider.AbstractLazyLoadingItemProvider.getChildren(AbstractLazyLoadingItemProvider.java:103)
	at org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider.getChildren(AdapterFactoryContentProvider.java:175)
	at org.locationtech.udig.project.ui.internal.UDIGAdapterFactoryContentProvider.getChildren(UDIGAdapterFactoryContentProvider.java:67)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1372)
	at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:353)
	at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:905)
	at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:617)
	at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2649)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1918)
	at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:684)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1893)
	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1850)
	at org.eclipse.jface.viewers.StructuredViewer$8.run(StructuredViewer.java:1528)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1436)
	at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:366)
	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1397)
	at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1525)
	at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:533)
	at org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider$ViewerRefresh.refresh(AdapterFactoryContentProvider.java:495)
	at org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider$ViewerRefresh.run(AdapterFactoryContentProvider.java:459)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:136)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4147)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3764)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1151)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1032)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:148)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:636)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:579)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
	at org.locationtech.udig.internal.ui.UDIGApplication.start(UDIGApplication.java:132)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:380)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:606)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:648)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:603)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1465)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1438)

introduce enablement of move up/down in layers view

Dependent from the current selection in LayersView it sometimes doesn't make sense to allow move up/move down of the currently selected layers. For example, if the layer is on top of all others the move up action should be disabled.

movedown

moveup

This fix is related to #240

MapEditor uses same internal EditorID like MapEditorWithPalette

see MapEditorWithPalette.ID and MapEditor.ID.

org.locationtech.udig.project.ui.internal.MapEditor.ID is "org.locationtech.udig.project.ui.mapEditor" and doesn' match the id used in Extension-point

<extension
         point="org.eclipse.ui.editors">
      <editor
            class="org.locationtech.udig.project.ui.internal.MapEditor"
            contributorClass="org.locationtech.udig.project.ui.internal.MapEditorActionBarContributor"
            default="false"
            icon="icons/obj16/map_obj.gif"
            id="org.locationtech.udig.project.ui.mapEditorOld"
            name="%mapEditor.name">
      </editor>

org.locationtech.udig.project.ui.internal.MapEditorWithPalette.ID has the same value which matches the id in extension point (project.edit plugin):

Question: How can I configure uDig to use "old" Editor without Palette for Actions? How is EditorInput associated with MapEditor?

Hole Cutter tool cannot implicitly close triangular holes

To reproduce:

  1. Activate the hole cutter tool.
  2. Begin a hole by placing 2 vertices within a polygon.
  3. Observe the status bar message "...double-click to end."
  4. Attempt to complete the hole by double clicking.
  • The hole is not finished.
  • An exception is logged.
  • A third vertex is placed.
  1. Now with the 3 vertices, attempt to finish the hole by pressing return.
  • An exception is logged instead.

(A related problem is that a triangular polygon drawn with CCW winding will not be converted to CW. You'll need a debugger to observe this.)

Memory layers with a field type of "Geometry" cannot have features added.

To reproduce:

  1. Layer > Create
  2. Choose "Geometry" as the "Type" for the geometry column.
  3. Attempt to add a feature with the "Create Point" tool or one of the other "Create ..." tools.
  • An IllegalArgumentException should be logged.

I believe this is caused by a bug in GeoTools.
GEOT-6275

PostGIS layers with type "Geometry" seem to work correctly.

Cannot open Style Editors for created layer

To reproduce:

  • Create a new Layer
  • select the new layer in layers View (which still has not feature to render)
  • select Style Action

Then nothing happens and a NullPointerException is logged for OpenStyleEditorAction in background:

!ENTRY org.eclipse.ui 4 0 2018-05-03 10:13:22.589
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.NullPointerException
	at org.locationtech.udig.style.sld.editor.OpenStyleEditorAction.run(OpenStyleEditorAction.java:112)
	at org.eclipse.ui.internal.PluginAction.runWithEvent(PluginAction.java:247)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565)
	at org.eclipse.jface.action.ActionContributionItem.lambda$5(ActionContributionItem.java:436)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153)
	at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.locationtech.udig.internal.ui.UDIGApplication.start(UDIGApplication.java:132)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1472)

Problem in shapefile saving when copying features from same layer

Hi,
It seems there is a serious problem when someone attempts to copy from a shapefile layer a feature and paste it to the same layer. A subsequent commit never completes and seems to blocks indefinitely the UI.
This issue was not present in old udig 1.4 (geotools 9.0-M0 and seems to have occured after shifting to locationtech and newer version of geotools (geotools 14.1).
How to reproduce:

  1. select a feature on a shapefile layer and do a right click and select copy from the popup menu
  2. click on the map (be sure same layer is selected), unselect the feature and do again a right click and select paste from the popup menu
  3. click the map commit button and observe that the commit progress monitor that appears never completes
    comment: it often occurs that another completely different feature is copied (based on selection and zoom o map after execution of step 2

Wrong behavior in InitMapCRS if defaultCRSPreference is set

Implementation in InitMapCRS has wrong behavior. If a product is configured using e.g. Pseudo-Mercator with:
org.locationtech.udig.project/defaultCRSPreference=3857

the first added layer changes ViewportModel CRS to its given (different) CRS (e.g. EPSG:4326)

Expected behavior: Whenever a different default is configured and EPSG code is fine, the ViewportModel CRS should be unchanged whenever a layer is added to the map.

see second part of if-statement:

ConcurrentModificationException using LayerInterceptor

By using a LayerInterceptor extension to detect added layers and inside the callback for an added layer I set the visibility of some added layers to false. This sometimes causes this excpetion:

Caused by: java.util.ConcurrentModificationException
                at org.eclipse.emf.common.util.AbstractEList$EIterator.checkModCount(AbstractEList.java:762)
                at org.eclipse.emf.common.util.AbstractEList$EIterator.doNext(AbstractEList.java:710)
                at org.eclipse.emf.common.util.AbstractEList$EIterator.next(AbstractEList.java:696)
                at org.locationtech.udig.project.ui.internal.LayersView.requiresCheckboxUpdate(LayersView.java:511)
                at org.locationtech.udig.project.ui.internal.LayersView.access$1(LayersView.java:585)
                at org.locationtech.udig.project.ui.internal.LayersView$7.run(LayersView.java:561)

uDig 2.0.0.RC1 freezes on MacOS

@silviafranceschi reported an issue (uDig/udig-extras#1) :

I am trying to run uDig 2.0.0.RC1 on MacOS with operating system Catalina and java JRE Java8: 1.8.0_241.
I can install it but when I start it all seems to work but nothing can be done from the GUI, all freezes and I have to exit from the icon of the application in the docker.

Seperate selection tools into different bundles

.. to allow SDK-Users to choose the prefered selection tools. Right now Integrators can only use the selection bundle which contributes different types of selection tools (Arrow, Rectangle and Area of Interest - AOI).
From my perspective its quite hard to remove one of this tools from own RCP-Application (transformations before plug-in registry is filled).

It would be great to have different bundles for at least AOI and standard selection tools. In addition to #217 it would be a plus to seperate standard selection tools as well (ArrowSelection vs. ArrowSelectionWithPopup).

Unit Test failure after JTS update RingExtractorTest

Update to geotools 19.x which implies JTS upgrade to 1.14.0 two test failing:

  • org.locationtech.tools.geometry.split.RingExtractorTest.testEndLineFinishOnEdge
  • org.locationtech.tools.geometry.split.RingExtractorTest.testEndLineFinishOnEdge2Rings

For now we skip these to resolve the problem with this issue

Map Tool availiability for invisible layers

It seems that if a feature layer is set as not visible then (if selected in the LayerView) tool actions like select, delete, edit etc are still possible for its features.
I wonder whether this is a desired behavior or it should be prohibited. Opinions?

Request for Change : Discontinue support for 32bit platforms

This is open for discussion to remove support for Windows 32bit and Linux 32bit platforms as we did for MacOSX (due to upgrade to newer Eclipse Release)

This would help to speed up the build and reduce required discspace in both, target folders and .m2 repositories.

Please let us know your point of view

consider upgrading udig target env to eclipse neon3 and Java 8

the current latest version of udig uses luna target environment but suffers from a number of limitations/performance issues like:

  • drag handles are not available for moving main toolbar and minimized/fast views
  • startup time of the udig product seems to be considerably greater compared to old udig 1.4

upgrading to eclipse neon target environment may resolve this UI issues and improve performance

seperate Cheatsheets from help bundle

Right now the help bundle has required-bundle dependency to org.eclipse.ui.cheatsheets.
For uDig itself its uncritical but for RCP-Apps build on top or with uDig containing help, it should be an option to have cheatsheets.

In addition, there is an unused dependency to org.eclipse.ui.intro from help-bundle, please remove it too

This allows an integrator to choose if cheatsheets should be a part of a product or not.

affected bundles:

  • org.locationtech.udig.help
  • org.locationtech.udig.issues
  • org.locationtech.udig.project.ui

expectation:
new bundles with cheatsheet content and extensions (e.g. org.locationtech.udig.project.ui.cheats for project related cheatsheets)

WMS GetFeatureInfo request is malformed

When using udig (Version: 2.0.0), and trying to do a WMS GetFeatureInfo request, I get the following error:

<ServiceExceptionReport xmlns="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.3.0" xsi:schemaLocation="http://www.opengis.net/ogc http://schemas.opengis.net/wms/1.3.0/exceptions_1_3_0.xsd">
<ServiceException code="MissingParameterValue">
msWMSLoadGetMapParams(): WMS server error. Missing required parameter CRS
</ServiceException>
</ServiceExceptionReport>

as per below screen shot

gfi-malfromed

The actual request sent is (xxx.xxx.xxx substituting for server name):

http://xxx.xxx.xxx/cgi-bin/UGA_ARGI/ows?SERVICE=WMS&INFO_FORMAT=text/html&LAYERS=ARTISANC&FORMAT=image/png&LANGUAGE=eng&HEIGHT=602&J=256&REQUEST=GetFeatureInfo&I=300&WIDTH=813&BBOX=30.889154617208934,0.03824996332654984,33.29548059763911,1.820055916855415&STYLES=default&QUERY_LAYERS=ARTISANC&VERSION=1.3.0

Adding &CRS=EPSG:4326& to the end AND switching the BBOX axes to BBOX=0.03824996332654984,30.889154617208934,1.820055916855415,33.29548059763911& gives the expected response

ViewportPaneSWT should be DPI aware

On Windows 10 the viewport is rendered at the native resolution of the display. On high DPI displays frame-rates can decay quickly with the size of the viewport.
e.g. on a laptop with a 1440p display and an i7-7500U the geometry creation tools can be very laggy. I suspect things will be much worse on a 4K laptop. Maybe someone has tried?

No appenders could be found for logger

og4j:WARN No appenders could be found for logger (org.geotools.factory).
log4j:WARN Please initialize the log4j system properly.

This is part of a general problem of a number of warning messages being issued as various open source projects start up.
The following clarification was offered on the user list

Hi Donovan,
This is related to the way that log4j uses reflection to find the appender.
I haven't looked deeply within the new udig 1.3.0 code base yet so I am not sure where things have moved and indeed if there is a log appender, but I did notice that there is a bundled org.apache.log4 library.
I have been running with SLF and log4j logging in my RCP plugins for some time and there are a couple of things that need to be done to permit log4j to work from plugins, please view the notes below:

  1. The bundled org.apache.log4j library provided in the udig code base doesn't have the correct directive in it to enable log4j to work, you need an Eclipse-BuddyPolicy: registered directive in the manifest of org.apache.log4j as follows:
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: org.apache.log4j
Bundle-SymbolicName: org.apache.log4j
Bundle-Version: 9.0.1.20110423
Bundle-Vendor: Apache Log4j
Export-Package: org.apache.log4j,
org.apache.log4j.chainsaw,
org.apache.log4j.config,
org.apache.log4j.helpers,
org.apache.log4j.jdbc,
org.apache.log4j.jmx,
org.apache.log4j.lf5,
org.apache.log4j.lf5.config,
org.apache.log4j.lf5.util,
org.apache.log4j.lf5.viewer,
org.apache.log4j.lf5.viewer.categoryexplorer,
org.apache.log4j.lf5.viewer.configure,
org.apache.log4j.lf5.viewer.images,
org.apache.log4j.net,
org.apache.log4j.nt,
org.apache.log4j.or,
org.apache.log4j.or.jms,
org.apache.log4j.or.sax,
org.apache.log4j.spi,
org.apache.log4j.varia,
org.apache.log4j.xml
Eclipse-BuddyPolicy: registered
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
  1. You will need to place a PluginLogAppender class in one or more plugins - see http://www.eclipsezone.com/eclipse/forums/t55300.html - http://www.eclipsezone.com/eclipse/forums/t55300.html. The example I use follows:
/*******************************************************************************
Copyright (c) 2005 John J. Franey
All rights reserved. This program and the accompanying materials
are made available under the terms of the Eclipse Public License v1.0
which accompanies distribution, and is available at
http://www.eclipse.org/legal/epl-v10.html
*
*******************************************************************************/
IR_GIS;
java.text.MessageFormat;
org.apache.log4j.AppenderSkeleton;
org.apache.log4j.Level;
org.apache.log4j.spi.LoggingEvent;
org.eclipse.core.runtime.ILog;
org.eclipse.core.runtime.IStatus;
org.eclipse.core.runtime.Platform;
org.eclipse.core.runtime.Status;
org.osgi.framework.Bundle;
/**
log4j appender to an eclipse plugin's Ilog.
@author John J. Franey
*
*/
AppenderSkeleton
{
symbolicName;
/* (non-Javadoc)
@see org.apache.log4j.AppenderSkeleton#append(org.apache.log4j.spi.LoggingEvent)
*/
void append(LoggingEvent event)
Unknown macro: { event is not severe enough. ; ILog log = getBundleILog(); ; throwable information is available, extract it. Throwable t = ; && layout.ignoresThrowable()) t = event.getThrowableInformation().getThrowable(); // build an Eclipse Status record, map severity and code from Event. Status s = Status(getSeverity(event), getSymbolicName(), getCode(event), layout.format(event), t); log.log(s); }
/**
map LoggingEvent's level to Status severity
@param ev
@
*/
getSeverity(LoggingEvent ev)
Unknown macro: { Level level = ev.getLevel(); (level == Level.FATAL || level == Level.ERROR) IStatus.ERROR; (level == Level.WARN) IStatus.WARNING; (level == Level.INFO) IStatus.INFO; // debug, trace and custom levels IStatus.OK; }
/**
Return the pluginId under which the messages will be logged
@
*/
getSymbolicName()
Unknown macro: { .symbolicName; }
name)
Unknown macro: { .symbolicName = name; }
/**
map LoggingEvent to Status code
@param ev
@
*/
getCode(LoggingEvent ev)
Unknown macro: { 0; }
ILog getBundleILog() {
a plug-in
Bundle b = Platform.getBundle(getSymbolicName());
)
Unknown macro: { //$NON-NLS-1$ .name}
);
.errorHandler.error(m);
;
}
Platform.getLog(b);
}
void close()
Unknown macro: { // nothing to close }
requiresLayout()
Unknown macro: { ; }
}

Then you need to make that PluginLogAppender visible by reflection, using an: Eclipse-RegisterBuddy: org.apache.log4j directive within the plugin manifest e.g.:

Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: IR_GIS (TM) Innovative Real-time Geographic Information 
Bundle-SymbolicName: IR_GIS;singleton:=
Bundle-Version: 1.2.18
Bundle-Activator: IR_GIS.IRGISPlugin
Bundle-Vendor: Arising Technology Systems Pty Limited
Require-Bundle: org.apache.log4j,
ri.common,
net.refractions.udig.project,
net.refractions.udig.mapgraphic,
net.refractions.udig.printing.model,
net.refractions.udig.printing.ui,
net.refractions.udig.tool.,
net.refractions.udig.tool.info,
net.refractions.udig.ui,
ri.checklogin;bundle-version=;resolution:=optional,
ri.udig.InfotoolOverride;bundle-version=;resolution:=optional
Import-Package: org.eclipse.ui.plugin,
org.slf4j
Eclipse-RegisterBuddy: org.apache.log4j
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
Bundle-ActivationPolicy: lazy
Export-Package: IR_GIS;version=
  1. I have kept the PluginLogAppender in the scope of ONE Plugin and its activator mandraulically configures the log4j properties via this code:
// Obtain the properties file to start the appender
IConfiguration config = ConfigurationFactory.getDefault();
//$NON-NLS-1$
, pathName));
PropertyConfigurator.configure(pathName);
logger = LoggerFactory.getLogger(.getClass());

(Note that ConfigurationFactory is proprietary code, you will need to use some other means to obtain the pathname to the log4k.properties file.)
I haven't spent any time using more than one plugin to contain the PluginLogAppender, nor tried to investigate whether the 1.3.0 udig code base actually contains one or more PluginLogAppender instances or equivalent classes, but my product has been running with one appender setup this way for over a year, perhaps this is something the development team can fix in the current udig code base?

Ralph Holland

Incorrect Projections for Portugal

The following CRS (on uDig projections database) do not have the necessary TOWGS84 parameters:

  • Lisbon (Lisbon) (4803) - TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6803"]
  • Lisbon (Lisbon) (deg) = Lisbon (Lisbon) (4803)
  • Lisbon (Lisbon) / Portuguese Grid (20791) - TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6803"]
  • Lisbon (Lisbon) / Portuguese National Grid (20190) - TOWGS84[-304.046,-60.576,103.64,0,0,0,0],AUTHORITY["EPSG","6803"]

This cause a displacement of 200-300 meters in Portugal mainland.
It is also necessary to provide the equivalence between the following ESRI projections:

  • ESRI:102164: "Lisboa Hayford Gauss IGeoE" is equivalent to EPSG:20790
  • ESRI:102165: "Lisboa Hayford Gauss IPCC" is equivalent to EPSG:20791
  • ESRI:104106: "GCS Datum Lisboa Hayford" is equivalent to EPSG:4207
  • ESRI:102161: "Datum 73 Hayford Gauss IPCC" is equivalent to EPSG:27493
  • ESRI: "GCS_Datum_73" is equivalent to EPSG:4274: Datum 73

Please refer to: http://epsg.io/
Warning: DO NOT use http://spatialreference.org

Please find attached samples of Portuguese projections.
Regards
Antonio

Sample of Portuguese projections.zip

StyleFactory is not an ImageIO SPI class

2.0.0 fails on startup with "An error has occured" popup directing you to a logfile (below)

MacOS Mojave 10.14

$ java -version
java version "11" 2018-09-25
Java(TM) SE Runtime Environment 18.9 (build 11+28)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11+28, mixed mode)
$ cat 1539004925670.log
!SESSION 2018-10-08 08:22:05.475 -----------------------------------------------
eclipse.buildId=unknown
java.version=11
java.vendor=Oracle Corporation
BootLoader constants: OS=macosx, ARCH=x86_64, WS=cocoa, NL=en_US
Framework arguments:  -keyring /Users/user/.eclipse_keyring
Command-line arguments:  -os macosx -ws cocoa -arch x86_64 -keyring /Users/user/.eclipse_keyring

!ENTRY org.eclipse.osgi 4 0 2018-10-08 08:22:07.622
!MESSAGE Application error
!STACK 1
java.lang.ExceptionInInitializerError
        at org.locationtech.udig.libs.internal.Activator.doEpsg(Activator.java:274)
        at org.locationtech.udig.libs.internal.Activator.epsgDatabaseFile(Activator.java:259)
        at org.locationtech.udig.internal.ui.UDIGApplication.init(UDIGApplication.java:168)
        at org.locationtech.udig.internal.ui.UDIGApplication.start(UDIGApplication.java:126)
        at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
        at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
        at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:653)
        at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590)
        at org.eclipse.equinox.launcher.Main.run(Main.java:1499)
Caused by: java.lang.IllegalArgumentException: org.geotools.styling.StyleFactory is not an ImageIO SPI class
        at java.desktop/javax.imageio.spi.ServiceRegistry.checkClassAllowed(ServiceRegistry.java:722)
        at java.desktop/javax.imageio.spi.ServiceRegistry.<init>(ServiceRegistry.java:117)
        at org.geotools.factory.FactoryRegistry.<init>(FactoryRegistry.java:155)
        at org.geotools.factory.FactoryCreator.<init>(FactoryCreator.java:91)
        at org.geotools.factory.CommonFactoryFinder.getServiceRegistry(CommonFactoryFinder.java:76)
        at org.geotools.factory.CommonFactoryFinder.lookup(CommonFactoryFinder.java:346)
        at org.geotools.factory.CommonFactoryFinder.getFilterFactory(CommonFactoryFinder.java:300)
        at org.geotools.factory.CommonFactoryFinder.getFilterFactory2(CommonFactoryFinder.java:390)
        at org.geotools.factory.CommonFactoryFinder.getFilterFactory2(CommonFactoryFinder.java:404)
        at org.geotools.data.DataUtilities.<clinit>(DataUtilities.java:204)
        ... 16 more

Zoom/Pan flicker when using multi-point create tools.

When using the create Polygon or Fill Area tools the image background will refresh an old render creating a flicker. It is not a white flicker like a refresh, but rather it loads a new image, then loads an old image, then loads a newer image. This seems to be caused by the EditToolHandler repaint() method. Specifically the edit tools listeners will fire a repaint request to the ViewportPane at the same time as the ViewportPane lifecycle is repainting.

To reproduce:

  • add a raster background (such as a OMS mapnik tile layer) or a tif.
  • Add a polygon layer.
  • Expand create (in the right hand tool bar).
  • Select Create Polygon (no need to actually click the map).
  • Zoom or pan the map and observe the change (if tiles aren't yet cached it will at first appear white, but then the stuttering will appear).

Memory Leak of FeatureEvents in Collection and performance issue

If running uDig of a long time with a lots of feature events for different layers, the collection increases constantly of time. There is a clean() call in add(index, object) that clear the cache of amount of features it larger than 10.

Due to implementation of EDataTypeUniqueEList and javadoc givs a hint that it also has significant performance impact

macOS run error

After I installed 2.0,When I run the app,Alert a error :The Udig_internal executable launcher was unable to locate its
companion shared library.

Animations draw in wrong location after pan

To reproduce:

  1. Activate a vector creation tool. e.g. "Create Polygon"
  2. Click the map to place a vertex and start the shrinking circle animation.
  3. Quickly pan the map.
  4. Notice that the animation does not move. i.e. it is rigid in screen space rather than world space.

This seems to have been considerably reduced by the recent rendering performance improvements.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.