ant-notifications mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Ivica Loncar (JIRA)" <j...@apache.org>
Subject [jira] Commented: (IVYDE-208) Ivy Resolve Visualizer
Date Sat, 03 Oct 2009 22:08:23 GMT

    [ https://issues.apache.org/jira/browse/IVYDE-208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12761963#action_12761963
] 

Ivica Loncar commented on IVYDE-208:
------------------------------------

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.


Mime
View raw message