4 votes

Défilement de l'Img smartgwt

J'ai écrit un code pour faire un zoom avant et un zoom arrière sur une image en utilisant smartGWT. mais le problème est que le canevas inclus ne peut pas afficher ses barres de défilement. comment résoudre ce problème ?

public class ImageViewer implements EntryPoint {

static int counter = 0;
int widths[] = new int[5];
int hights[] = new int[5];
int originalW=0;
int originalH=0;

public void onModuleLoad() {
    // -------tool bar ---------------
    ToolStrip toolbar = new ToolStrip();  
    toolbar.setWidth("100%"); 
    toolbar.addFill();

    ToolStripButton max = new ToolStripButton("  +  ");
    ToolStripButton min = new ToolStripButton("  -  ");
    ToolStripButton auto = new ToolStripButton(" auto ");

    ToolStripButton print = new ToolStripButton(" print ");
    ToolStripButton save = new ToolStripButton(" save ");

    toolbar.addButton(max);
    toolbar.addButton(min);
    toolbar.addButton(auto);

    toolbar.addSeparator();

    toolbar.addButton(print);
    toolbar.addButton(save);
    // -------------------------------
    HLayout hLayout = new HLayout();
    VLayout vLayout = new VLayout();

    SectionStack sectionStack = new SectionStack();
    sectionStack.setWidth("100%");
    sectionStack.setHeight("100%");
    sectionStack.setVisibilityMode(VisibilityMode.MULTIPLE);
    sectionStack.setAnimateSections(true);
    sectionStack.setOverflow(Overflow.HIDDEN);

    SectionStackSection summarySection = new SectionStackSection();
    summarySection.setTitle("Image Viewer");
    summarySection.setExpanded(true);
    summarySection.setItems(hLayout);

    sectionStack.setSections(summarySection);

    TreeGrid treeGrid = new TreeGrid();
    treeGrid.setWidth("20%");
    treeGrid.setShowConnectors(true);
    treeGrid.setShowResizeBar(true);

    final Canvas imgCanvas = new Canvas();
    imgCanvas.setShowEdges(true);

    final Img img = new Img("http://www.google.com/intl/en_ALL/images/srpr/logo1w.png");
    img.setParentElement(imgCanvas);
    img.draw();
    img.setImageType(ImageStyle.CENTER);
    originalW = img.getWidth();
    originalH = img.getHeight();
    widths[0] = originalW;
    hights[0] = originalH;

    widths[1] = widths[0]*2;
    hights[1] = hights[0]*2;

    widths[2] = widths[1]*2;
    hights[2] = hights[1]*2;

    widths[3] = widths[2]*2;
    hights[3] = hights[2]*2;

    widths[4] = widths[3]*2;
    hights[4] = hights[3]*2;

    hLayout.setMembers(treeGrid, vLayout);
    vLayout.setMembers(toolbar,imgCanvas);

    RootPanel.get("imgPanel").add(sectionStack);

    //-------------- handelers --------------------

    max.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            img.setImageType(ImageStyle.STRETCH);
            if (counter <4){
                counter++;
                img.animateRect(0, 0, widths[counter] , hights[counter]);   
            }
        }
    });

    min.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            img.setImageType(ImageStyle.STRETCH);
            if (counter > 0){
                counter--;
                img.animateRect(0, 0, widths[counter], hights[counter]);
            }               
        }
    });

    auto.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            img.setImageType(ImageStyle.CENTER);
            img.animateRect(0, 0, originalW, originalH);
            imgCanvas.adjustForContent(true);

        }
    });
    //---------------------------------------------
}

}

2voto

ImgCanvas.setOverflow(Overflow.AUTO). imgCanvas affichera alors des barres de défilement si nécessaire si l'image est plus grande que la taille spécifiée de l'imgCanvas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X