#567 reFlux editor preview

KevinKelley Sun 3 May 2009

I've put up my reFlux project for an initial look.

I'm finding the Pod List view pane to be very useful; it shows a tree view of all system pods, with popup hover-help showing the fandocs for pods, types, and slots. I use it as a quicker alternative to browsing the fandoc html pages.

The fanfold folding editor is still not trustworthy, but it's getting closer.

I've also put up links to a couple interesting parsers I'm implementing in Fan.

brian Mon 4 May 2009

I haven't gotten a chance to dig into it (probably not until Mon or Tue night). But it looks pretty cool.

I did notice the pod links didn't seem to work, although I was able to download the source zip ok.

One thing that would be really nice is if your enhancements were just drop in pod plugins that works using the standard flux pod, and you just provided additional sidebars and views (on the Fan file extension). I haven't looked at your flux code, but did you need to change that code? Anything I can do in my code so your code can just be drop in sidebar/view plugins?

KevinKelley Mon 4 May 2009

The PodList pane can very easily be made a drop-in to flux; mainly the only thing needing changed is the annotations, and adding the hover-help pane initializer to the Flux Frame. (panes get clipped to their parent pane, so it needs to be added at the highest level; and since that frame has its own layout management, getting it to coexist is just slightly tricky).

The fanfold editor is basically the same situation; as soon as it's good enough to be useful I'll turn it into a drop-in to Flux.

brian Mon 4 May 2009

changed is the annotations, and adding the hover-help pane initializer to the Flux Frame.

Not sure I fully grok that - do you mind writing those enhancements up so I can understand and track them? Thanks.

KevinKelley Mon 4 May 2009

The annotations thing is a non-issue; when I started this I thought I was going to need to make more changes to Flux, so I duplicated the Flux code to a reflux pod; then had to change the annotations like @fluxSidebar to @refluxSidebar, so that my experimenting wouldn't break the editor I was using. There's a better way to have done that, but I didn't realize it at the time, and I haven't got around to changing it back, yet.

The one thing that needs to happen, so that PodList can be a drop-in to Flux, is the hover-pane initialization. HoverPane is defined in reflux/flux/fan/sidebars/HoverPane.fan. It is initialized in reflux/flux/fan/Frame.fan. Since it doesn't make sense for a tooltip-style popup to be clipped to just the sidebar area, I added it to the top-level Flux frame. Also, it has to be added first, because it needs to be topmost. Waiting until the PodList pane is loaded to add it, means that it is last in its parent's child list, and so is displayed behind its sibling panes.

If I'd made it a Window instead of a Pane, there's an alwaysOnTop property; but Windows have title bars, which isn't appropriate for tooltip help.

Or, that property could be added to the Pane class; then I could add the hover pane when the podList is created and still have it be topmost. I didn't suggest that, because, it seems to me there should only be one tooltip pane and it should be shared by any parts of the application that want it. So, I think HoverPane needs to be part of Flux, managed by the application and accessible as a property on the flux frame. I could be wrong about all that, but it's the best I could come up with.

qualidafial Mon 4 May 2009

Also, it has to be added first, because it needs to be topmost. Waiting until the PodList pane is loaded to add it, means that it is last in its parent's child list, and so is displayed behind its sibling panes.

SWT's Composite class has the methods moveAbove and moveBelow for that, but I don't think it's exposed in FWT from looking the fandoc.

KevinKelley Tue 5 May 2009

so that PodList can be a drop-in to Flux

I've done this, now; here's the PodList source code and compiled pod, and the Flux mods modifications to the current Flux code, to make it work.

As discussed above, the only mod needed is to initialize my HoverPane in the Flux Frame class.

brian Tue 5 May 2009

As discussed above, the only mod needed is to initialize my HoverPane in the Flux Frame class.

Cool. Andy is going to add a hook for bubble help/popup you can use so we can it clean.

Login or Signup to reply.