[
https://issues.apache.org/jira/browse/IVYDE-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12761963#action_12761963
]
Ivica Loncar edited comment on IVYDE-208 at 10/3/09 3:10 PM:
-------------------------------------------------------------
Now I can see icons but they look way too small. They aren't 16x16. I still
can't figure out why. Probably has something with my setup.
More ideas:
- zoom in/out using ctrl+mouse scroll
- search should focus on found items, there should be a convinient method to
select next/previous item
Btw. I have been playing with Zest and found out that there is a thumbnail
previewer. Instead of scrollbars we could use a thumbnail.
Sample code:
{code:java}
private static class ZoomableComposite extends Composite {
FigureCanvas thumbnail;
ScrollableThumbnail tb;
public ZoomableComposite(Composite parent, int style) {
super(parent, style);
this.setLayout(new FormLayout());
createZoomableCanvas(this);
}
public void setGraph(Graph graph) {
if (graph.getParent() != this) {
throw new AssertionError("Graph must be a child of this
zoomable composite.");
}
createContents(graph);
tb.setViewport(graph.getViewport());
tb.setSource(graph.getContents());
}
private void createZoomableCanvas(Composite parent) {
FormData data = new FormData();
data.top = new FormAttachment(100,-130);
data.left = new FormAttachment(100,-130);
data.right = new FormAttachment(100,-30);
data.bottom = new FormAttachment(100,-30);
thumbnail = new FigureCanvas(parent, SWT.NONE);
thumbnail.setBackground(ColorConstants.white);
thumbnail.setLayoutData(data);
tb = new ScrollableThumbnail();
tb.setBorder(new LineBorder(1));
thumbnail.setContents(tb);
}
private void createContents(Control control) {
FormData data = new FormData();
data.top = new FormAttachment(0,0);
data.left = new FormAttachment(0,0);
data.right = new FormAttachment(100,0);
data.bottom = new FormAttachment(100,0);
control.setParent(this);
control.setLayoutData(data);
}
}
{code}
One can use it like this:
{code:java}
private void createGraphSection(Composite parent) {
Section section = this.toolkit.createSection(parent, Section.TITLE);
ZoomableComposite zoomableComposite = new ZoomableComposite(section,
SWT.NONE);
viewer = new InternalGraphViewer(zoomableComposite, SWT.NONE);
viewer.getGraphControl().setVerticalScrollBarVisibility(FigureCanvas.NEVER);
viewer.getGraphControl().setHorizontalScrollBarVisibility(FigureCanvas.NEVER);
zoomableComposite.setGraph((Graph)viewer.getControl());
section.setClient(zoomableComposite);
}
{code}
Of course if you need more screen real-estate you can just remove the section:
{code:java}
private void createGraphSection(Composite parent) {
ZoomableComposite zoomableComposite = new ZoomableComposite(parent,
SWT.NONE);
viewer = new InternalGraphViewer(zoomableComposite, SWT.NONE);
viewer.getGraphControl().setVerticalScrollBarVisibility(FigureCanvas.NEVER);
viewer.getGraphControl().setHorizontalScrollBarVisibility(FigureCanvas.NEVER);
zoomableComposite.setGraph((Graph)viewer.getControl());
}
{code}
was (Author: iloncar):
Now I can see icons but they look way too small. They aren't 16x16. I still
can't figure out why. Probably has something with my setup.
More ideas:
- zoom in/out using ctrl+mouse scroll
- search should focus on found items, there should be a convinient method to
select next/previous item
Btw. I have been playing with Zest and found out that there is a thumbnail
previewer. Instead of scrollbars we could use a previewer.
Sample code:
{code:java}
private static class ZoomableComposite extends Composite {
FigureCanvas thumbnail;
ScrollableThumbnail tb;
public ZoomableComposite(Composite parent, int style) {
super(parent, style);
this.setLayout(new FormLayout());
createZoomableCanvas(this);
}
public void setGraph(Graph graph) {
if (graph.getParent() != this) {
throw new AssertionError("Graph must be a child of this
zoomable composite.");
}
createContents(graph);
tb.setViewport(graph.getViewport());
tb.setSource(graph.getContents());
}
private void createZoomableCanvas(Composite parent) {
FormData data = new FormData();
data.top = new FormAttachment(100,-130);
data.left = new FormAttachment(100,-130);
data.right = new FormAttachment(100,-30);
data.bottom = new FormAttachment(100,-30);
thumbnail = new FigureCanvas(parent, SWT.NONE);
thumbnail.setBackground(ColorConstants.white);
thumbnail.setLayoutData(data);
tb = new ScrollableThumbnail();
tb.setBorder(new LineBorder(1));
thumbnail.setContents(tb);
}
private void createContents(Control control) {
FormData data = new FormData();
data.top = new FormAttachment(0,0);
data.left = new FormAttachment(0,0);
data.right = new FormAttachment(100,0);
data.bottom = new FormAttachment(100,0);
control.setParent(this);
control.setLayoutData(data);
}
}
{code}
One can use it like this:
{code:java}
private void createGraphSection(Composite parent) {
Section section = this.toolkit.createSection(parent, Section.TITLE);
ZoomableComposite zoomableComposite = new ZoomableComposite(section,
SWT.NONE);
viewer = new InternalGraphViewer(zoomableComposite, SWT.NONE);
viewer.getGraphControl().setVerticalScrollBarVisibility(FigureCanvas.NEVER);
viewer.getGraphControl().setHorizontalScrollBarVisibility(FigureCanvas.NEVER);
zoomableComposite.setGraph((Graph)viewer.getControl());
section.setClient(zoomableComposite);
}
{code}
Of course if you need more screen real-estate you can just remove the section:
{code:java}
private void createGraphSection(Composite parent) {
ZoomableComposite zoomableComposite = new ZoomableComposite(parent,
SWT.NONE);
viewer = new InternalGraphViewer(zoomableComposite, SWT.NONE);
viewer.getGraphControl().setVerticalScrollBarVisibility(FigureCanvas.NEVER);
viewer.getGraphControl().setHorizontalScrollBarVisibility(FigureCanvas.NEVER);
zoomableComposite.setGraph((Graph)viewer.getControl());
}
{code}
> Ivy Resolve Visualizer
> ----------------------
>
> Key: IVYDE-208
> URL: https://issues.apache.org/jira/browse/IVYDE-208
> Project: IvyDE
> Issue Type: New Feature
> Reporter: Jon Schneider
> Attachments: evicted.gif, focus.gif, ivyde-208.patch,
> ivyde-208.patch, ivyde-208.patch, screenshot-1.jpg, screenshot-2.jpg,
> screenshot-3.jpg, screenshot-4.jpg, screenshot-5.jpg
>
>
> I am kind of excited about this one. I would like to be able to see the
> resolve report depicted graphically, showing me clearly how particular
> dependencies wound up on the classpath, what nodes got evicted, what
> dependencies a particular transitive dependency has, etc etc. Ivy can
> sometimes fall into the category of "automagically" doing so much for us on
> the classpath, that developers can take it for granted. Especially when a
> version conflict arises out of a resolution (by which two different revisions
> are resolved that aren't under the same eviction context), I see developers
> getting very confused. I hope this visualization will help them understand.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.