Hi everyone,

As I have announced in my last blog post I am working on extensible palette. I making some progress and I need your feedback to make sure we are going in the right direction.

Here's what works in the current version:

  • In your project you can create a special directory named "assets"
  • Images and master screens placed in this directory will appear automatically in the Palette
  • You can use sub-directories to create categories in the palette's categories drop-down

Please give it a try and let me know what you think about it. Usability is a big concern for me so please don't hesitate to suggest UI changes.

Here's a quick screenshot of the current version:

User assets in the palette

Good work and a step into right direction!

I've tried it.

Bug #1: apparently, adding objects under assets doesn't refresh assets pane right away. I had to close project and re-open it to see a screen added to the assets.

Bug #2: it's not a good idea to hard-code the name of the assets folder. It should be configurable per project.

Bug(?) #3: User should be able to add little shapes as library elements. I believe it is more important than to have screens and images. Small shapes are much likely to be reused. Looks like there is no standalone file type for a shape (New-> gives only Screen and Storyline).

As you may remember, I was looking into ways to use Sketcher as an UML drawing tool. User palette may open a way to this goal, but it needs to contain small shapes (e.g. lifeline for UML sequence diagram) to be usable. I believe it is true for any other custom palette.

Also, when playing with prototype UML symbols, I realized one more crucial element is missing -- connection points. If I point an arrow to an element, and then move element aside to free some space, I expect the arrow to move too. I guess it has some value even in screenshots (e.g. "note" element should move with the annotated element), but in UML it is especially crucial, as it contains a lot of connections.

Hope my feedback helps.

Vlad, thanks a lot for your feedback.

For #1 could you send me your log file as generated by Window->Preferences->WireframeSketcher->Report a Bug? The assets folder should be refreshed automatically. Perhaps I can spot an error in your log file.

For #2 I am thinking about adding per project settings as I have another request for the same thing. There would be a new section in the project properties dialog.

As for #3, I plan to do some enhancements for master screens. One thing I think is needed is the possibility to inline master screens. Inlining a master would basically copy its contents into the edited screen. Would this solve your need for "small shapes"?

I actually was looking into connection points problem last week. I saw an online tool that does this and I thought it was pretty sleek. I need to think more about how this could be done. GEF has support for connections so I think this feature has a good chance to make it into the product.

1:

!ENTRY com.wireframesketcher.ui 1 0 2010-11-14 11:31:53.869 !MESSAGE WireframeSketcher v2.1.0

!ENTRY org.eclipse.core.resources 4 2 2010-11-14 11:34:48.302 !MESSAGE Problems occurred when invoking code from plug-in: "org.eclipse.core.resources". !STACK 0 java.lang.NullPointerException at com.wireframesketcher.ui.Z.resourceChanged(SourceFile:41) at org.eclipse.core.internal.events.NotificationManager$2.run(NotificationManager.java:291) at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) at org.eclipse.core.internal.events.NotificationManager.notify(NotificationManager.java:285) at org.eclipse.core.internal.events.NotificationManager.handleEvent(NotificationManager.java:249) at org.eclipse.core.internal.resources.Workspace.broadcastEvent(Workspace.java:321) at org.eclipse.core.internal.resources.Project.close(Project.java:186) at org.eclipse.ui.actions.CloseResourceAction.invokeOperation(CloseResourceAction.java:129) at org.eclipse.ui.actions.WorkspaceAction.execute(WorkspaceAction.java:162) at org.eclipse.ui.actions.WorkspaceAction$2.runInWorkspace(WorkspaceAction.java:483) at org.eclipse.core.internal.resources.InternalWorkspaceJob.run(InternalWorkspaceJob.java:38) at org.eclipse.core.internal.jobs.Worker.run(Worker.java:54)

Re: #3: I hardly can comment on "inlining" as I do not understand what it means. But if it looks like operating a simple shape, feels like operating a simple shape and behave like that too, then it should do it.

Vlad, thanks for the stacktrace. It looks like it should help me.

I don't know what a "simple shape" means either :) Can you try to explain what it is in terms used by WireframeSketcher? Is it just one of the standard widgets? How should it behave when dragged from the palette? Is there a link to the original source file like it is with master screens?

It would be nice if we could use symbolic links for the assets folder... an example would be, being able to sym link to an icon library that you do not neccissarily want to be included in your project and not included in version control.

Does that make sense?

Hi Michael,

Eclipse definitely allows you to do it. Create a sub-directory in the 'assets' directory and in the creation wizard use the 'Advanced' section to link it to an external directory.

One potential problem I see with this is that if you share your mockups with other members of your team then each of them will need to have the same configuration. I think Eclipse will store the information about the link in version control but the external directory must exist at the same location on each machine. Does it make sense?

Peter,

That makes perfect sense. Thank you for the info! As always you are awesome.

Michael.