Thanks, Dmitry, for your ideas.

I will try to set up a project in github where people can collaborate, but it will take me some days as I'm under heavy load currently. I'll have some time next thursday, hopefully.

I'll keep you all posted on any advance so you can collaborate.

Kind regards,
Antonio

El 14/11/17 a las 19:46, Dmitry Avtonomov escribió:
I'd say it better be something that has at least some "local" capabilities,
i.e. without the need for internet access.

I'd vouch for something like this (has a lot of components of a typical
desktop application) in addition to the landingThan page idea:

  0) It should be bundled with the platrom and harness files the app is
built against. There should be clear pointers as to which files need to be
downloaded from where and how to add a new platform instance to the system.
Many people don't realize that and use the one that comes with their IDE
and this leads to many pains afterwards. Also currently the way to navigate
to the place where you can download platform files / separate clusters is
far from obvious:

netbeans.org -> Netbeans Platform link -> Get Netbeans Platform button,
which surprisingly instructs you to just download the IDE, which leads to
more confusion -> Download Netbeans IDE (!) button -> scroll down the page
to a link buried among a bunch of other text "zip file format" -> Whew,
we've finally found it! Wait, stop, there are 32 different files, I don't
know which of those files I need.. What's the difference between "Zip
Files" and "Clusters"?..

I hope this will change with the apache transition.

  1) On the left, like a project explorer, a list of files (maybe an
OutlineView over the local filesystem) with a field for filtering files
according to a regular expression.
      That shows the OutlineView and introduces top components. This will be
a singleton top component.

  2) The application should be able to recognize 2 file types mapping them
to the same mime type (I mean it can be more, but 2 is the minimum to
demonstate ohw it works).
      The file can be a tab dlimited file with 2 columns of numbers for
simplicity (we'll display them as a text file and as a scatter plot).
      Let's say those will be files of some custom extension ".demo-file".
Then the app should be able to recognize ".demo-file" files and, let's say
".demo-file.gz" files. (https://commons.apache.org/proper/commons-compress/
helps with dealing with various compression formats)
      This introduces DataLoaders and MimeTypes.

  3) The toolbar should probably have some extra buttons that will activate
when files of "known" type get selected. One button to open a file in text
editor (text editor from netbeans). One button to open chart view (e.g.
jfreechart).
      This will demonstrate how to use the Nodes API (when selection in the
OutlineView changes you'll have to manually update the activated nodes
set). It will also show a little bit of Lookup as the buttons activation
will be triggered by changes to the global lookup. And some intro to
building context aware actions.
      This demonstrates non-singletop TopComponents.

  4) When the view buttons are clicked, data should be parsed and shown in
the corresponding viewer. When a viewer is closed, the data should be
unloaded I guess.
      Bonus: If multiple viewers are opened for the same file, it should
probably not be re-parsed, but existing data be reused. In such cases it
data should not be unloaded untill all the top components using it are
closed.
      This shows how to properly use DataLoaders and TopComponents together.

  5) Would be super cool if it was possible to remember the application
state upon closing and reopen all the editors etc. to their previous
locations and data.


For 1) there's one of Geertjan's old tutorials somewhere.
2) is sort of tricky for me, as I don't fully understand how Netbean's mime
recognition system works. I tried using it and always found myself in a
situation where some super-general mime recognizer from the platform/ide
cluster caught files before mine had a chance to look at it. Happened to me
with XML files when the ide cluster was also used.
3) is sort of standard.
For 4) I don't know if there is any standard mechanism in netbeans to reuse
data or a pattern to do it properly, I had to invent my own kludges in my
app.
And I still don't know how to do 5) properly.

Hope this makes sense. And it looks like there's very little non-platform
code required. It will only be parsing a tab delimited file and building a
Dataset to use in a jfreechart plot.

Dmitry

Reply via email to