Example usage for com.google.gwt.user.client.ui HorizontalPanel setVerticalAlignment

List of usage examples for com.google.gwt.user.client.ui HorizontalPanel setVerticalAlignment

Introduction

In this page you can find the example usage for com.google.gwt.user.client.ui HorizontalPanel setVerticalAlignment.

Prototype

public void setVerticalAlignment(VerticalAlignmentConstant align) 

Source Link

Document

Sets the default vertical alignment to be used for widgets added to this panel.

Usage

From source file:org.drools.workbench.screens.guided.dtable.client.widget.GuidedDecisionTableWidget.java

License:Apache License

private void refreshAttributeWidget() {
    this.attributeConfigWidget.clear();
    if (model.getMetadataCols().size() > 0) {
        HorizontalPanel hp = new HorizontalPanel();
        hp.add(new HTML("  "));
        hp.add(new SmallLabel(new StringBuilder(GuidedDecisionTableConstants.INSTANCE.Metadata1())
                .append(GuidedDecisionTableConstants.COLON).toString()));
        attributeConfigWidget.add(hp);/*w w w  .  jav  a  2s . c  o  m*/
    }
    for (MetadataCol52 atc : model.getMetadataCols()) {
        HorizontalPanel hp = new HorizontalPanel();
        hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
        hp.add(new HTML("    "));
        if (!isReadOnly) {
            hp.add(removeMeta(atc));
        }
        final SmallLabel label = makeColumnLabel(atc);
        hp.add(label);

        final MetadataCol52 at = atc;
        final CheckBox hide = new CheckBox(
                new StringBuilder(GuidedDecisionTableConstants.INSTANCE.HideThisColumn())
                        .append(GuidedDecisionTableConstants.COLON).toString());
        hide.setStyleName("form-field");
        hide.setValue(atc.isHideColumn());
        hide.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent sender) {
                final MetadataCol52 clonedAt = at.cloneColumn();
                at.setHideColumn(hide.getValue());
                dtable.setColumnVisibility(at, !at.isHideColumn());
                setColumnLabelStyleWhenHidden(label, hide.getValue());
                fireUpdateColumn(identity.getIdentifier(), clonedAt, at, clonedAt.diff(at));
            }
        });
        hp.add(new HTML("  "));
        hp.add(hide);

        attributeConfigWidget.add(hp);
    }
    if (model.getAttributeCols().size() > 0) {
        HorizontalPanel hp = new HorizontalPanel();
        hp.add(new HTML("  "));
        hp.add(new SmallLabel(GuidedDecisionTableConstants.INSTANCE.Attributes()));
        attributeConfigWidget.add(hp);
    }

    for (AttributeCol52 atc : model.getAttributeCols()) {
        final AttributeCol52 at = atc;
        HorizontalPanel hp = new HorizontalPanel();
        hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);

        hp.add(new HTML("    "));
        if (!isReadOnly) {
            hp.add(removeAttr(at));
        }
        final SmallLabel label = makeColumnLabel(atc);
        hp.add(label);

        final Widget defaultValue = DefaultValueWidgetFactory.getDefaultValueWidget(atc, isReadOnly,
                new DefaultValueWidgetFactory.DefaultValueChangedEventHandler() {
                    @Override
                    public void onDefaultValueChanged(
                            DefaultValueWidgetFactory.DefaultValueChangedEvent event) {
                        final AttributeCol52 clonedAt = at.cloneColumn();
                        clonedAt.setDefaultValue(event.getOldDefaultValue());
                        fireUpdateColumn(identity.getIdentifier(), clonedAt, at, clonedAt.diff(at));
                    }
                });

        if (at.getAttribute().equals(RuleAttributeWidget.SALIENCE_ATTR)) {
            hp.add(new HTML("  "));
            final CheckBox useRowNumber = new CheckBox(GuidedDecisionTableConstants.INSTANCE.UseRowNumber());
            useRowNumber.setStyleName("form-field");
            useRowNumber.setValue(at.isUseRowNumber());
            useRowNumber.setEnabled(!isReadOnly);
            hp.add(useRowNumber);

            hp.add(new SmallLabel("("));
            final CheckBox reverseOrder = new CheckBox(GuidedDecisionTableConstants.INSTANCE.ReverseOrder());
            reverseOrder.setStyleName("form-field");
            reverseOrder.setValue(at.isReverseOrder());
            reverseOrder.setEnabled(at.isUseRowNumber() && !isReadOnly);

            useRowNumber.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent sender) {
                    final AttributeCol52 clonedAt = at.cloneColumn();
                    at.setUseRowNumber(useRowNumber.getValue());
                    reverseOrder.setEnabled(useRowNumber.getValue());
                    dtable.updateSystemControlledColumnValues();
                    fireUpdateColumn(identity.getIdentifier(), clonedAt, at, clonedAt.diff(at));
                }
            });

            reverseOrder.addClickHandler(new ClickHandler() {
                public void onClick(ClickEvent sender) {
                    final AttributeCol52 clonedAt = at.cloneColumn();
                    at.setReverseOrder(reverseOrder.getValue());
                    dtable.updateSystemControlledColumnValues();
                    fireUpdateColumn(identity.getIdentifier(), clonedAt, at, clonedAt.diff(at));
                }
            });
            hp.add(reverseOrder);
            hp.add(new SmallLabel(")"));
        }
        hp.add(new HTML("  "));
        hp.add(new SmallLabel(new StringBuilder(GuidedDecisionTableConstants.INSTANCE.DefaultValue())
                .append(GuidedDecisionTableConstants.COLON).toString()));
        hp.add(defaultValue);

        final CheckBox hide = new CheckBox(
                new StringBuilder(GuidedDecisionTableConstants.INSTANCE.HideThisColumn())
                        .append(GuidedDecisionTableConstants.COLON).toString());
        hide.setStyleName("form-field");
        hide.setValue(at.isHideColumn());
        hide.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent sender) {
                final AttributeCol52 clonedAt = at.cloneColumn();
                at.setHideColumn(hide.getValue());
                dtable.setColumnVisibility(at, !at.isHideColumn());
                setColumnLabelStyleWhenHidden(label, hide.getValue());
                fireUpdateColumn(identity.getIdentifier(), clonedAt, at, clonedAt.diff(at));
            }
        });
        hp.add(new HTML("  "));
        hp.add(hide);

        attributeConfigWidget.add(hp);
        setupColumnsNote();
    }

}

From source file:org.drools.workbench.screens.guided.rule.client.editor.ConstraintValueEditor.java

License:Apache License

private Panel widgets(IsWidget left, IsWidget right) {
    HorizontalPanel panel = new HorizontalPanel();
    panel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    panel.add(left);/*  w  w w.  jav a 2  s  .  c  o  m*/
    panel.add(right);
    panel.setWidth("100%");
    return panel;
}

From source file:org.drools.workbench.screens.guided.rule.client.editor.factPattern.Connectives.java

License:Apache License

public Widget connectives(final SingleFieldConstraint c) {
    final HorizontalPanel hp = new HorizontalPanel();
    if (c.getConnectives() != null && c.getConnectives().length > 0) {
        hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
        hp.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
        for (int i = 0; i < c.getConnectives().length; i++) {
            final int index = i;
            final ConnectiveConstraint con = c.getConnectives()[i];
            connectiveOperatorDropDown(con, new Callback<Widget>() {
                @Override//from w  w  w. j  ava 2 s .  c o m
                public void callback(final Widget w) {
                    hp.add(w);
                    hp.add(connectiveValueEditor(con));

                    if (!isReadOnly) {
                        Image clear = GuidedRuleEditorImages508.INSTANCE.DeleteItemSmall();
                        clear.setAltText(GuidedRuleEditorResources.CONSTANTS.RemoveThisRestriction());
                        clear.setTitle(GuidedRuleEditorResources.CONSTANTS.RemoveThisRestriction());
                        clear.addClickHandler(createClickHandlerForClearImageButton(c, index));
                        hp.add(clear);
                    }
                }
            });

        }
    }
    return hp;

}

From source file:org.drools.workbench.screens.guided.rule.client.widget.ExpressionBuilder.java

License:Apache License

private Widget createWidgetForExpression() {
    final HorizontalPanel container = new HorizontalPanel();
    container.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    container.setStylePrimaryName(GuidedRuleEditorResources.INSTANCE.css().container());
    for (ExpressionPart expressionPart : expression.getParts()) {
        if (expressionPart instanceof ExpressionUnboundFact) {
            continue;
        } else if (this.readOnly) {
            container.add(new Label(expressionPart.getName()));
        } else if (expressionPart instanceof ExpressionMethod) {
            container.add(new Label(expressionPart.getName()));
            container.add(new Label("("));
            final ExpressionMethod em = (ExpressionMethod) expressionPart;
            final List<ExpressionFormLine> emParams = em.getOrderedParams();
            for (int index = 0; index < emParams.size(); index++) {
                final ExpressionFormLine paramValueHolder = emParams.get(index);
                final String paramDataType = em.getParameterDataType(paramValueHolder);
                final ExpressionMethodParameter paramValue = ((ExpressionMethodParameter) paramValueHolder
                        .getRootExpression());
                final TextBox paramValueEditor = TextBoxFactory.getTextBox(paramDataType);
                paramValueEditor.addValueChangeHandler(new ValueChangeHandler<String>() {
                    @Override/*from  www .  j av  a 2  s  . c  o m*/
                    public void onValueChange(ValueChangeEvent<String> event) {
                        paramValue.setText(event.getValue());
                    }
                });
                paramValueEditor.setText(paramValue.getName());
                container.add(paramValueEditor);
                if (index < emParams.size() - 1) {
                    container.add(new Label(", "));
                }
            }
            container.add(new Label(")"));
        } else if (!(expressionPart instanceof ExpressionText)) {
            container.add(new Label(expressionPart.getName()));
        } else {
            final TextBox tb = new TextBox();
            final ExpressionText expressionTextPart = (ExpressionText) expressionPart;
            tb.setText(expressionTextPart.getName());
            tb.addChangeHandler(new ChangeHandler() {
                @Override
                public void onChange(final ChangeEvent changeEvent) {
                    expressionTextPart.setText(tb.getText());
                }
            });
            container.add(tb);
        }
        container.add(new Label("."));
    }
    return container;
}

From source file:org.freemedsoftware.gwt.client.screen.MainScreen.java

License:Open Source License

private String getHeaderString(String text, AbstractImagePrototype image) {
    // Add the image and text to a horizontal panel
    HorizontalPanel hPanel = new HorizontalPanel();
    hPanel.setSpacing(0);//from   ww  w  . j av a2 s.  co  m
    hPanel.setWidth("100%");
    hPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    hPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    if (image != null)
        hPanel.add(image.createImage());
    HTML headerText = new HTML(text);
    headerText.setStyleName("stackPanelHeader");
    hPanel.add(headerText);

    // Return the HTML string for the panel
    return hPanel.getElement().getString();
}

From source file:org.freemedsoftware.gwt.client.widget.DjvuViewer.java

License:Open Source License

public DjvuViewer() {
    final VerticalPanel verticalPanel = new VerticalPanel();
    initWidget(verticalPanel);//from   w w  w  .j  av  a2 s.  c  o  m
    verticalPanel.setSize("100%", "100%");

    final HorizontalPanel controlBarTop = new HorizontalPanel();
    verticalPanel.add(controlBarTop);
    controlBarTop.setWidth("100%");

    wBackTop = new PushButton();
    controlBarTop.add(wBackTop);
    wBackTop.setText("-");
    wBackTop.setStylePrimaryName("freemed-PushButton");
    wBackTop.addClickHandler(this);

    wPageTop = new Label("1 of 1");
    controlBarTop.add(wPageTop);
    wPageTop.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);

    wViewTop = new PushButton(_("View"));
    wViewTop.addClickHandler(this);
    wViewTop.setStylePrimaryName("freemed-PushButton");
    controlBarTop.add(wViewTop);

    wForwardTop = new PushButton();
    controlBarTop.add(wForwardTop);
    wForwardTop.setText("+");
    wForwardTop.setStylePrimaryName("freemed-PushButton");
    wForwardTop.addClickHandler(this);

    wImage = new Image();
    verticalPanel.add(wImage);
    wImage.setSize("100%", "100%");

    final HorizontalPanel controlBarBottom = new HorizontalPanel();
    verticalPanel.add(controlBarBottom);
    controlBarBottom.setWidth("100%");
    controlBarBottom.setVerticalAlignment(HasVerticalAlignment.ALIGN_BOTTOM);

    wBackBottom = new PushButton();
    controlBarBottom.add(wBackBottom);
    wBackBottom.setText("-");
    wBackBottom.setStylePrimaryName("freemed-PushButton");
    wBackBottom.addClickHandler(this);

    wPageBottom = new Label("1 of 1");
    controlBarBottom.add(wPageBottom);
    wPageBottom.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);

    wViewBottom = new PushButton(_("View"));
    wViewBottom.addClickHandler(this);
    wViewBottom.setStylePrimaryName("freemed-PushButton");
    controlBarBottom.add(wViewBottom);

    wForwardBottom = new PushButton();
    controlBarBottom.add(wForwardBottom);
    wForwardBottom.setText("+");
    wForwardBottom.setStylePrimaryName("freemed-PushButton");
    wForwardBottom.addClickHandler(this);
}

From source file:org.freemedsoftware.gwt.client.widget.SchedulerWidget.java

License:Open Source License

public SchedulerWidget() {
    super(moduleName);

    ////////////Applying stored configurations////////////////
    int startHour = 10;
    int endHour = 18;
    int intervalsPerHour = 4;
    show24HourClock = false;/*from   w  w  w  .  ja  va  2 s  . com*/
    int intervalHeight = 50;
    if (Util.getProgramMode() == ProgramMode.JSONRPC) {
        startHour = CurrentState.getSystemConfig("calshr") != null
                ? Integer.parseInt(CurrentState.getSystemConfig("calshr"))
                : startHour;
        endHour = CurrentState.getSystemConfig("calehr") != null
                ? Integer.parseInt(CurrentState.getSystemConfig("calehr"))
                : endHour;
        intervalsPerHour = CurrentState.getSystemConfig("calinterval") != null
                ? (60 / Integer.parseInt(CurrentState.getSystemConfig("calinterval")))
                : intervalsPerHour;
        intervalHeight = CurrentState.getSystemConfig("calintervalheight") != null
                ? Integer.parseInt(CurrentState.getSystemConfig("calintervalheight"))
                : intervalHeight;
        show24HourClock = CurrentState.getSystemConfig("calshow24hourclock") != null
                ? (Integer.parseInt(CurrentState.getSystemConfig("calshow24hourclock")) == 1)
                : show24HourClock;
    }
    StringPanelRenderer panelRenderer = new StringPanelRenderer();
    panelRenderer.setStartHour(startHour);
    panelRenderer.setEndHour(endHour);
    panelRenderer.setIntervalsPerHour(intervalsPerHour);
    panelRenderer.setShow24HourClock(show24HourClock);
    panelRenderer.setIntervalHeight(intervalHeight);
    ////////////End configurations////////////////      

    filterModulesAndMethods.put("ProviderModule", "GetDailyAppointmentsRange");
    filterModulesAndMethods.put("ProviderGroups", "GetDailyAppointmentsRangeByProviderGroup");
    SELECTED_MODULE = "ProviderModule";

    eventCacheController = new EventCacheController();
    multiPanel = new MultiView(eventCacheController, panelRenderer);
    panel.setWidth("100%");
    final HorizontalPanel loadingContainer = new HorizontalPanel();
    loadingContainer.add(new Image("resources/images/loading.gif"));
    loadingContainer.add(new HTML("<h3>" + "Loading" + "</h3>"));
    loadingDialog.setStylePrimaryName(SchedulerCss.EVENT_DIALOG);
    loadingDialog.setWidget(loadingContainer);
    loadingDialog.hide();

    final VerticalPanel headerArea = new VerticalPanel();
    headerArea.setWidth("100%");

    final HorizontalPanel fields = new HorizontalPanel();
    fields.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    fields.setWidth("100%");
    headerArea.add(fields);
    panel.add(headerArea, DockPanel.NORTH);

    /*
     * fields.add(label); fields.setCellHeight(label, "50%");
     */

    final HorizontalPanel filterPanel = new HorizontalPanel();
    fields.add(filterPanel);
    // fields.setCellWidth(filterPanel, "50%");
    Label selectFilterLabel = new Label(_("Filter by") + " :");
    selectFilterLabel.setStyleName(AppConstants.STYLE_LABEL_LARGE_BOLD);
    filterPanel.add(selectFilterLabel);

    final CustomListBox selectFilter = new CustomListBox();
    selectFilter.addItem(_("Provider"), "ProviderModule");
    selectFilter.addItem(_("Provider Groups"), "ProviderGroups");
    selectFilter.addChangeHandler(new ChangeHandler() {
        @Override
        public void onChange(ChangeEvent arg0) {
            SELECTED_MODULE = selectFilter.getStoredValue();
            filterModule.setModuleName(SELECTED_MODULE);
            filterModule.setValue(0);
        }
    });
    filterPanel.add(selectFilter);

    filterModule.setModuleName("ProviderModule");
    filterModule.setWidth("300px");
    filterModule.addValueChangeHandler(new ValueChangeHandler<Integer>() {
        @Override
        public void onValueChange(ValueChangeEvent<Integer> event) {
            Integer val = ((SupportModuleWidget) event.getSource()).getValue();
            // Log.debug("Patient value = " + val.toString());
            try {
                if (val.compareTo(new Integer(0)) != 0) {
                    multiPanel.clearData();
                    eventCacheController.getEventsForRange(multiPanel.getCurrent().getFirstDateLogical(),
                            multiPanel.getCurrent().getLastDateLogical(), val,
                            filterModulesAndMethods.get(SELECTED_MODULE), multiPanel, true);
                }
            } catch (Exception e) {
                // Don't do anything if no patient is declared
                GWT.log("Caught exception", e);
            }
        }
    });
    filterPanel.add(filterModule);

    CustomButton clearButton = new CustomButton(_("Clear"), AppConstants.ICON_CLEAR);
    clearButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent arg0) {
            filterModule.setValue(0);
            eventCacheController.getEventsForRange(multiPanel.getCurrent().getFirstDateLogical(),
                    multiPanel.getCurrent().getLastDateLogical(), multiPanel, true);
        }
    });
    filterPanel.add(clearButton);

    final HorizontalPanel fields2Panel = new HorizontalPanel();
    fields2Panel.setSpacing(5);
    CustomButton showPicker = new CustomButton(_("Jump"));
    fields2Panel.add(showPicker);

    if (CurrentState.isActionAllowed(blockSlotsModuleName, AppConstants.SHOW)) {
        CustomButton showBlockSlots = new CustomButton(_("Block Slots"));
        showBlockSlots.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent arg0) {
                BlockTimeSlotPopup blockTimeSlotPopup = new BlockTimeSlotPopup();
                blockTimeSlotPopup.show();
                blockTimeSlotPopup.center();
            }
        });
        fields2Panel.add(showBlockSlots);
    }

    headerArea.add(fields2Panel);

    final VerticalPanel posPanel = new VerticalPanel();
    posPanel.setVisible(false);
    posPanel.setWidth("100%");
    HorizontalPanel pickerHolder = new HorizontalPanel();
    pickerHolder.add(posPanel);
    pickerHolder.add(multiPanel);

    showPicker.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent arg0) {
            posPanel.setVisible(!posPanel.isVisible());
            if (posPanel.isVisible())
                multiPanel.setPixelSize((Window.getClientWidth() * 78) / 100,
                        (Window.getClientHeight() * 70) / 100);
            else
                multiPanel.setPixelSize((Window.getClientWidth() * 87) / 100,
                        (Window.getClientHeight() * 70) / 100);
        }
    });

    HTML space = new HTML("");
    posPanel.add(space);
    space.setHeight("40px");
    posPanel.add(navigator);
    // navigator.setVisible(false);
    // pickerHolder.setCellWidth(posPanel, "200px");
    pickerHolder.setVerticalAlignment(VerticalPanel.ALIGN_TOP);

    pickerHolder.setCellWidth(multiPanel, "100%");
    multiPanel.setWidth("100%");
    multiPanel.setPixelSize((Window.getClientWidth() * 87) / 100, (Window.getClientHeight() * 300) / 100);

    // posPanel.setWidth("200px");

    panel.add(pickerHolder, DockPanel.CENTER);
    pickerHolder.setWidth("100%");
    onWindowResized(-1, Window.getClientHeight());
    panel.setStyleName("whiteForDemo");
    multiPanel.addDateListener(this);
    navigator.addDateListener(this);
    Window.addResizeHandler(this);
    multiPanel.scrollToHour(7);

    initWidget(panel);
}

From source file:org.gatein.management.gadget.client.Application.java

License:Open Source License

/**
 * @param text//from   w  w  w  .  ja v a  2  s  . c  o  m
 * @param image
 * @return
 */
private String getItemString(String text, ImageResource image) {
    // Add the image and text to a horizontal panel
    HorizontalPanel hPanel = new HorizontalPanel();
    hPanel.setSpacing(0);
    hPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    hPanel.add(new Image(image));
    HTML headerText = new HTML(text);
    hPanel.add(headerText);
    // Return the HTML string for the panel
    return hPanel.getElement().getString();
}

From source file:org.geomajas.plugin.deskmanager.client.gwt.manager.datalayer.panels.UploadShapefileForm.java

License:Open Source License

public UploadShapefileForm() {
    form = new FormPanel();
    form.setAction(SERVICE_NAME);//  ww  w  .ja  v  a  2s  .com
    form.setEncoding(FormPanel.ENCODING_MULTIPART);
    form.setMethod(FormPanel.METHOD_POST);

    // Create a panel to hold all of the form widgets.
    VerticalPanel panel = new VerticalPanel();
    hiddenLayerName = new Hidden("layername");
    panel.add(hiddenLayerName);
    hiddenToken = new Hidden(URL_TOKEN);
    panel.add(hiddenToken);
    form.setWidget(panel);

    // Create a FileUpload widget.
    upload = new FileUpload();
    upload.setName("uploadFormElement");
    upload.addChangeHandler(new ChangeHandler() {

        public void onChange(ChangeEvent event) {
            for (ItemChangedHandler item : handlers) {
                ItemChangedEvent ice = new ItemChangedEvent(null);
                item.onItemChanged(ice);
            }
        }
    });
    HorizontalPanel hp = new HorizontalPanel();
    hp.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    hp.setSpacing(3);
    com.google.gwt.user.client.ui.Label lblUpload = new com.google.gwt.user.client.ui.Label(
            MESSAGES.uploadShapefileLabelText() + " : ");
    lblUpload.setStyleName("formTitle");
    hp.add(lblUpload);
    hp.add(upload);
    panel.add(hp);

    form.addSubmitCompleteHandler(new FormPanel.SubmitCompleteHandler() {

        public void onSubmitComplete(SubmitCompleteEvent event) {
            String res = event.getResults().trim();
            if (res.startsWith("<")) {
                int start = res.indexOf(">") + 1;
                int end = res.indexOf("<", start);
                res = res.substring(start, end);
            }
            uploadFinished(res);
        }
    });

    // -------------------------------------------------

    addMember(form);
}

From source file:org.geomajas.quickstart.gwt2.client.widget.layer.LayerLegend.java

License:Open Source License

/**
 * Get a fully build layer legend for a LayersModel.
 *
 * @param layerPopupPanelContent Original HTMLPanel
 * @param layersModel LayersModel of the map
 * @return HTMLPanel fully build legend.
 *///  w w w  .j a  v  a  2 s.  c  o  m
private HTMLPanel getLayersLegend(HTMLPanel layerPopupPanelContent, LayersModel layersModel) {

    for (int i = 0; i < mapPresenter.getLayersModel().getLayerCount(); i++) {

        HTMLPanel layer = new HTMLPanel("");
        CheckBox visible = new CheckBox();

        final int finalI = i;
        visible.addClickHandler(new ClickHandler() {
            @Override
            public void onClick(ClickEvent event) {
                if (mapPresenter.getLayersModel().getLayer(finalI).isMarkedAsVisible()) {
                    mapPresenter.getLayersModel().getLayer(finalI).setMarkedAsVisible(false);
                } else {
                    mapPresenter.getLayersModel().getLayer(finalI).setMarkedAsVisible(true);
                }
            }
        });

        if (mapPresenter.getLayersModel().getLayer(i).isMarkedAsVisible()) {
            visible.setValue(true);
        }

        InlineLabel layerName = new InlineLabel(mapPresenter.getLayersModel().getLayer(i).getTitle());

        layer.add(visible);
        layer.add(layerName);

        layerPopupPanelContent.add(layer);

        ////////////////////////////////
        // Add legend items
        ////////////////////////////////

        Layer legendLayer = mapPresenter.getLayersModel().getLayer(i);

        if (legendLayer instanceof VectorServerLayerImpl) {
            VectorServerLayerImpl serverLayer = (VectorServerLayerImpl) legendLayer;
            String legendUrl = GeomajasServerExtension.getInstance().getEndPointService().getLegendServiceUrl();

            NamedStyleInfo styleInfo = serverLayer.getLayerInfo().getNamedStyleInfo();
            String name = serverLayer.getLayerInfo().getNamedStyleInfo().getName();

            int x = 0;

            for (FeatureTypeStyleInfo sfi : styleInfo.getUserStyle().getFeatureTypeStyleList()) {
                for (RuleInfo rInfo : sfi.getRuleList()) {
                    UrlBuilder url = new UrlBuilder(legendUrl);
                    url.addPath(serverLayer.getServerLayerId());
                    url.addPath(name);
                    url.addPath(x + ".png");
                    x++;

                    HorizontalPanel layout = new HorizontalPanel();
                    layout.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
                    layout.add(new Image(url.toString()));
                    Label labelUi = new Label(rInfo.getName());
                    labelUi.getElement().getStyle().setMarginLeft(5, Style.Unit.PX);
                    layout.add(labelUi);

                    layout.getElement().getStyle().setMarginLeft(20, Style.Unit.PX);
                    layout.getElement().getStyle().setMarginTop(3, Style.Unit.PX);

                    layerPopupPanelContent.add(layout);
                }
            }

        } else if (legendLayer instanceof RasterServerLayerImpl) {
            RasterServerLayerImpl serverLayer = (RasterServerLayerImpl) legendLayer;

            String legendUrl = GeomajasServerExtension.getInstance().getEndPointService().getLegendServiceUrl();
            UrlBuilder url = new UrlBuilder(legendUrl);
            url.addPath(serverLayer.getServerLayerId() + ".png");

            HorizontalPanel layout = new HorizontalPanel();
            layout.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
            layout.add(new Image(url.toString()));
            Label labelUi = new Label("");
            labelUi.getElement().getStyle().setMarginLeft(5, Style.Unit.PX);
            layout.add(labelUi);

            layout.getElement().getStyle().setMarginLeft(20, Style.Unit.PX);
            layout.getElement().getStyle().setMarginTop(3, Style.Unit.PX);

            layerPopupPanelContent.add(layout);
        }

    }

    return layerPopupPanelContent;

}