Hi, To give more food for thought about layerable hierarchy, I have an old project in mind to create VirtualLayers. A VirtualLayer would be the dataset of another Layer. It may be read-only. Its main purpose is to have more than one style associated to a single datasource and to be able to interleave styles associated with one datasource with styles associated to another datasource.
Michaël Le 03/02/2016 17:58, edgar.sol...@web.de a écrit : > sure, go ahead. > > it's just important to me that we talk about it first and find an ordered > approach that takes into account the existing API. i am a big fan of small > steps, but into the right direction. meaning a big overhaul refactoring is > possibly bringing more problems than the whole cleanup is worth. > streamlining the existing API by eg. moving a small functionality out of > Layer into AbstractLayerable at a time and test it will probably the least > dangerous approach. > > visualizing the current design beforehand might probably help all parties to > get an initial overview as well. > > ..ede > > On 03.02.2016 17:49, Landon Blake wrote: >> How do you guys feel about having Peppe and I review our existing layerable >> class/interface architecture and come up with a proposal for clean-up and >> revisions. I think some of Peppe's suggested methods are useful, but agree >> with Ede that we need to plug them into the correct interface. >> >> I think this is exactly the type of TLC the OpenJUMP core needs. I would >> love to work with Peppe to test some code and then propose a more >> comprehensive clean-up of the layerable code here. >> >> Peppe: Let me know if you want my help. >> >> Others: Let me know if you'd be willing to consider a proposal and some >> test code from Peppe and I. >> >> Landon >> >> On Wed, Jan 27, 2016 at 7:02 AM, Giuseppe Aruta <giuseppe.ar...@gmail.com> >> wrote: >> >>> OK, >>> I had the response of everybody. >>> >>> - I am going to remove all the Layer.class parts and restore as it is >>> before >>> - I am going to leave only the RasterImageLayer.class method >>> isTemporaryLayer() >>> - I will create an external class, called maybe LayerbleUtils - no >>> implementation to Layerable or other classes, just a useful Util class to >>> group all these potential boolen/String methods. >>> >>>> you mean as default saving format when leaving OJ? why? >>> No. Not talking about SaveDatasetsPlugIn. It has a useful behaviour: if I >>> try to add a a polygon to a point layer (belonging to a Shapefile, already >>> saved). And than I will save it, the plugin will save the original geometry >>> collection to the original file, and create another SHP file with the >>> polygon. This is probably better than a warning message. >>> My idea is to add this capability to Michael's project >>> SaveLayersWithoutDatasource.class ( it saves a list of layers without >>> datasource, the user can choose JML or SHP as export format) which is also >>> invoked on Saving a project. >>> An alternative simpler idea is to give the plugin the capability to >>> distinguish mixed geometry types layers among all, and to save them as JML, >>> even if the user choose SHP. >>> In any I will not change none of the actual classes. As I frequently >>> work with Sextante rasters(RasterImageLayer.class), I will start from >>> Michael's plugin to create another one that has these two extra >>> capabilities: >>> a) it saves also a list of Temporary Raster layers as TIF >>> b) it allows users to commit changes on "modified layers" ( I will >>> consider "modified layers" as Layer.class, vector based, with a datasource. >>> I will exclude from this collection ("modified layers") >>> DataStoreQueryDataSources and ReferencedImageLayer (legacy images) as >>> their saving is still complex and ambiguous (see a previous discussion >>> about saving a ReferencedImageLayer when its envelope has been moved or >>> resized) >>> Peppe >>> >>> 2016-01-27 13:53 GMT+01:00 Michaël Michaud <m.michael.mich...@orange.fr>: >>> >>>> Hi, >>>> >>>> I think that Peppe's request show some flaws in layerable hierarchy. >>>> Some may be addressed by adding helper methods to existing class. >>>> Others maybe addressed by introducing new interfaces. >>>> Some are not so difficult to find in current implementation. >>>> >>>> My main complain about the design is that raster has two very different >>>> representations (a layer subclass for legacy images and a different >>>> class for >>>> sextante) >>>> It could be a good idea to arrive to the following hierarchy : >>>> AbstractLayer >>>> - rasterLayer (RasterImageLayer + Sextante + WMS : is it possible ?) >>>> - vectorLayer (Shape, database, WFS...) >>>> >>>> In such a scenario, I don't know if current Layer should be equal to >>>> VectorLayer >>>> or above Vector and Raster. >>>> >>>> Another feature I'd like which meets peppe's requirement is some >>>> information >>>> about the source (null/file[tmp,compressed]/url[database,service]) at the >>>> AbstractLayer level, or at least above Raster/Vector, because this is a >>>> common thing >>>> which is quite difficult to get in a uniform way in the current >>>> hierarchy (and which is >>>> a bit hidden). >>>> >>>> Maybe also methods like >>>> - getEnvelope (currently available in raster layer and wms but not in >>>> layer !) should be >>>> implemented at the AbstractLayer level, as well as >>>> - getFeatureCollection which could return image(s) enveloppes in case of >>>> raster layers. >>>> >>>> My 2 cents >>>> >>>> Michaël >>>> >>>> Le 27/01/2016 12:22, edgar.sol...@web.de a écrit : >>>>> thx! and exactly my point :) ..ede >>>>> >>>>> On 27.01.2016 12:17, Alberto De Luca wrote: >>>>>> Ede, >>>>>> >>>>>> yes I am aware of the majority of the additions relate to Layer.java, >>>> but I >>>>>> wouldn't venture into commenting on those since my knowledge with >>>> regards >>>>>> to the Layer class is limited. What I could say though is that for what >>>>>> I've seen the design of Layer is very neat and though-through in >>>> comparison >>>>>> to RasterImageLayer, therefore I would think more than twice before >>>>>> touching it. >>>>>> >>>>>> Alberto >>>>>> >>>>>> On 27 January 2016 at 11:13, <edgar.sol...@web.de> wrote: >>>>>> >>>>>>> Alberto, >>>>>>> >>>>>>> you are aware most additions Peppe did were to Layer.java where they >>>>>>> definitely don't belong? >>>>>>> >>>>>>> if it's needed in RasterImageLayer, i don't oppose at all. >>>>>>> >>>>>>> ..ede >>>>>>> >>>>>>> On 27.01.2016 10:53, Alberto De Luca wrote: >>>>>>>> Hey guys, >>>>>>>> >>>>>>>> at the moment RasterImageLayer is quite a messy class (a mess to whom >>>>>>> I've >>>>>>>> been contributing, by the way), because there's a bit of everything >>>> in >>>>>>> in, >>>>>>>> from methods that manipulate the raster values to methods that take >>>> care >>>>>>> of >>>>>>>> the rendering on screen... >>>>>>>> >>>>>>>> So while we wait for the lucky ticket-owner to come along, I think >>>> that >>>>>>> the >>>>>>>> utility methods added by Peppe (that to me are definitely useful) >>>> should >>>>>>>> stay: they just made the class a bit messier :P >>>>>>>> >>>>>>>> Alberto >>>>>>>> >>>>>>>> >>>>>>>> On 27 January 2016 at 03:00, Stefan Steiniger <sst...@geo.uzh.ch> >>>> wrote: >>>>>>>>> see below >>>>>>>>> >>>>>>>>> Am 26.01.16 um 13:31 schrieb Giuseppe Aruta: >>>>>>>>>> Just few extra details: >>>>>>>>>> >>>>>>>>>> 1) Temporary vector (Layer.class) and raster >>>> (RasterImageLayer.class) >>>>>>>>>> layers (isTemporaryLayer()) >>>>>>>>>> - Sextante is a different software and it handles raster and >>>> vector in >>>>>>> a >>>>>>>>>> separate way from OpenJUMP >>>>>>>>>> - while TEMP files should be stored in Windows forever (except if >>>> user >>>>>>>>>> does a deep OS cleaning) Linux and MacOSX delete these files from >>>> the >>>>>>>>>> /TEMP folder on shuts down >>>>>>>>>> Linux and Mac users should be aware that, if they shut down the OS >>>> and >>>>>>>>>> if they don't save these temp data in another folder, they will >>>> lost >>>>>>>>>> them. But I am sure that few know about this. >>>>>>>>>> >>>>>>>>>> Pratical usage: >>>>>>>>>> Other temporary layers also layers with no datasource. >>>>>>>>>> SaveLayrsWithoutDatasourcePlugIn of Michael already advises users >>>> about >>>>>>>>>> the presence of these layers. >>>>>>>>>> I am planning to expand this plugin to this other group of >>>> temporary >>>>>>>>>> layers (the one stored into /TEMP folder) both Layers and >>>>>>>>> RasterImageLayers. >>>>>>>>>> I could work on the plugin without adding new boolean on System >>>> classes >>>>>>>>>> (you are right, Ede, those functionality are already there) >>>>>>>>>> But a flag like RasterImagerLayer.isTemporary() would avoid some >>>> extra >>>>>>>>>> code and, more important, it could be used also in the future >>>>>>>>> I agree with Peppe here... >>>>>>>>> But perhaps we need to see how this fits also with Michaels DB >>>>>>>>> experiences (and approaches). At least most Raster-Related helper >>>>>>>>> classes make sense to me. Perhaps Alberto has a comment on that too. >>>>>>>>> And if Ede points out to the original JUMP design/development... >>>> well >>>>>>>>> the design focus was on vector... everything else raster wise was >>>> more >>>>>>>>> experimental (my opinion). And this is now also some wooohhhoo 12-13 >>>>>>>>> years ago... ;) >>>>>>>>> >>>>>>>>> Ideally of course one would need to do what QGIS did, a complete >>>>>>>>> redesign of the core, but... (perhaps someone wins in the lottery >>>> and >>>>>>>>> funds 5 devs from that :) >>>>>>>>> >>>>>>>>> cheers, >>>>>>>>> Stefan >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>> ------------------------------------------------------------------------------ >>>>>>>>> Site24x7 APM Insight: Get Deep Visibility into Application >>>> Performance >>>>>>>>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >>>>>>>>> Monitor end-to-end web transactions and take corrective actions now >>>>>>>>> Troubleshoot faster and improve end-user experience. Signup Now! >>>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >>>>>>>>> _______________________________________________ >>>>>>>>> Jump-pilot-devel mailing list >>>>>>>>> Jump-pilot-devel@lists.sourceforge.net >>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>>>>>>> >>>>>>>> >>>>>>>> >>>> ------------------------------------------------------------------------------ >>>>>>>> Site24x7 APM Insight: Get Deep Visibility into Application >>>> Performance >>>>>>>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >>>>>>>> Monitor end-to-end web transactions and take corrective actions now >>>>>>>> Troubleshoot faster and improve end-user experience. Signup Now! >>>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> Jump-pilot-devel mailing list >>>>>>>> Jump-pilot-devel@lists.sourceforge.net >>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>>>>>> >>>>>>> >>>> ------------------------------------------------------------------------------ >>>>>>> Site24x7 APM Insight: Get Deep Visibility into Application Performance >>>>>>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >>>>>>> Monitor end-to-end web transactions and take corrective actions now >>>>>>> Troubleshoot faster and improve end-user experience. Signup Now! >>>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >>>>>>> _______________________________________________ >>>>>>> Jump-pilot-devel mailing list >>>>>>> Jump-pilot-devel@lists.sourceforge.net >>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>>>>> >>>>>> >>>>>> >>>> ------------------------------------------------------------------------------ >>>>>> Site24x7 APM Insight: Get Deep Visibility into Application Performance >>>>>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >>>>>> Monitor end-to-end web transactions and take corrective actions now >>>>>> Troubleshoot faster and improve end-user experience. Signup Now! >>>>>> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >>>>>> >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> Jump-pilot-devel mailing list >>>>>> Jump-pilot-devel@lists.sourceforge.net >>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>>>> >>>> ------------------------------------------------------------------------------ >>>>> Site24x7 APM Insight: Get Deep Visibility into Application Performance >>>>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >>>>> Monitor end-to-end web transactions and take corrective actions now >>>>> Troubleshoot faster and improve end-user experience. Signup Now! >>>>> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >>>>> _______________________________________________ >>>>> Jump-pilot-devel mailing list >>>>> Jump-pilot-devel@lists.sourceforge.net >>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>>> >>>> >>>> >>>> ------------------------------------------------------------------------------ >>>> Site24x7 APM Insight: Get Deep Visibility into Application Performance >>>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >>>> Monitor end-to-end web transactions and take corrective actions now >>>> Troubleshoot faster and improve end-user experience. Signup Now! >>>> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >>>> _______________________________________________ >>>> Jump-pilot-devel mailing list >>>> Jump-pilot-devel@lists.sourceforge.net >>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Site24x7 APM Insight: Get Deep Visibility into Application Performance >>> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >>> Monitor end-to-end web transactions and take corrective actions now >>> Troubleshoot faster and improve end-user experience. Signup Now! >>> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >>> _______________________________________________ >>> Jump-pilot-devel mailing list >>> Jump-pilot-devel@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >>> >>> >> >> >> ------------------------------------------------------------------------------ >> Site24x7 APM Insight: Get Deep Visibility into Application Performance >> APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month >> Monitor end-to-end web transactions and take corrective actions now >> Troubleshoot faster and improve end-user experience. Signup Now! >> http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 >> >> >> >> _______________________________________________ >> Jump-pilot-devel mailing list >> Jump-pilot-devel@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel >> > ------------------------------------------------------------------------------ > Site24x7 APM Insight: Get Deep Visibility into Application Performance > APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month > Monitor end-to-end web transactions and take corrective actions now > Troubleshoot faster and improve end-user experience. Signup Now! > http://pubads.g.doubleclick.net/gampad/clk?id=267308311&iu=/4140 > _______________________________________________ > Jump-pilot-devel mailing list > Jump-pilot-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel > ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ Jump-pilot-devel mailing list Jump-pilot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel