Example usage for com.google.gwt.user.client.ui Anchor setHref

List of usage examples for com.google.gwt.user.client.ui Anchor setHref

Introduction

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

Prototype

public void setHref(String href) 

Source Link

Document

Sets the anchor's href (the url to which it links).

Usage

From source file:at.ait.dme.yuma.client.image.annotation.ImageAnnotationTreeNode.java

License:EUPL

/**
 * adds the header information: user, date and rates
 *///from   w w w .j a v  a 2 s.  c o m
public void addHeader() {
    headerPanel.setStyleName("imageAnnotation-header");

    if (annotation.getScope() == ImageAnnotation.Scope.PRIVATE) {
        privateAnnotation.setStyleName("imageAnnotation-private-annotation-image");
        headerPanel.add(privateAnnotation);
    }

    headerUser.setText(annotation.getCreatedBy());
    headerUser.setStyleName("imageAnnotation-header-user");
    headerPanel.add(headerUser);

    if (annotation.getCreated() != null) {
        headerDate
                .setText("(" + DateTimeFormat.getShortDateTimeFormat().format(annotation.getModified()) + ")");
        headerDate.setStyleName("imageAnnotation-header-date");
    }
    headerPanel.add(headerDate);

    if (annotation.hasFragment()) {
        fragment.setStyleName("imageAnnotation-header-fragment");
        headerPanel.add(fragment);
    }

    if (annotation.hasFragment() && (Application.getBbox() != null || Application.isInTileMode())) {
        mapAnnotation.setStyleName("imageAnnotation-header-map");
        mapAnnotation.addClickHandler(new ClickHandler() {
            public void onClick(ClickEvent event) {
                WindowPanel window = MinMaxWindowPanel.createMinMaxWindowPanel(550, 300, 500, 300);
                window.setWidget(new GoogleMapsComposite(annotation));
                window.show();
            }
        });
        headerPanel.add(mapAnnotation);
    }

    // rate information not yet implemented
    /*
     * if(annotation.getRate()==null || annotation.getRate()==0)
     * rateValue.setStyleName("imageAnnotation-header-rate"); else
     * if(annotation.getRate()>0)
     * rateValue.setStyleName("imageAnnotation-header-rate-plus"); else
     * rateValue.setStyleName("imageAnnotation-header-rate-minus");
     */
    rateValue.setStyleName("imageAnnotation-header-rate");
    rateValue.setText("+0");
    annotationRatePanel.add(rateValue);

    rateMinus.setStyleName("imageAnnotation-header-rate-image-minus");
    annotationRatePanel.add(rateMinus);
    ratePlus.setStyleName("imageAnnotation-header-rate-image-plus");
    annotationRatePanel.add(ratePlus);

    if (Application.getFlaggedId() != null && Application.getFlaggedId().equals(annotation.getId())) {
        flag.setStyleName("imageAnnotation-header-flag-red-image");
        flagged = true;
    } else {
        flag.setStyleName("imageAnnotation-header-flag-blue-image");
    }
    Anchor flagAnchor = new Anchor();
    flagAnchor.setHref(createFlagLink());
    flagAnchor.setTarget("_blank");
    flagAnchor.getElement().appendChild(flag.getElement());
    annotationRatePanel.add(flagAnchor);

    headerPanel.add(annotationRatePanel);
    annotationPanel.add(headerPanel);

    // Init CSS style
    deselect();
}

From source file:burrito.client.widgets.panels.table.Table.java

License:Apache License

protected void renderTable() {
    // remove all previous rows 
    for (int i = 1; i < table.getRowCount(); i++) {
        table.removeRow(i);/*from w w w.java 2s.  c  o  m*/
    }
    int leftMargin = 0;
    if (rowsSelectable) {
        leftMargin++; // add margin because of select box
    }

    table.resize(currentModel.size() + 1, this.numberOfColumns);
    int row = 1;
    for (final T obj : currentModel) {
        String[] names = table.getRowFormatter().getStyleName(row).split(" ");
        for (String style : names) {
            if (style.length() > 0)
                table.getRowFormatter().removeStyleName(row, style);
        }
        if (rowsSelectable) {
            final int thisRowAsFinal = row;
            CheckBox select = new CheckBox();
            select.addValueChangeHandler(new ValueChangeHandler<Boolean>() {

                @Override
                public void onValueChange(ValueChangeEvent<Boolean> event) {
                    if (event.getValue().booleanValue()) {
                        table.getRowFormatter().addStyleName(thisRowAsFinal, "k5-Table-row-selected");
                    } else {
                        table.getRowFormatter().removeStyleName(thisRowAsFinal, "k5-Table-row-selected");
                    }
                }
            });
            table.setWidget(row, 0, select);
        }
        for (int column = 0; column < numberOfModelColumns; column++) {
            table.setWidget(row, column + leftMargin, cellRenderers.get(column).render(obj));
        }
        table.getRowFormatter().addStyleName(row, "k5-Table-row");
        if (row % 2 == 0) {
            table.getRowFormatter().addStyleName(row, "k5-Table-row-even");
        } else {
            table.getRowFormatter().addStyleName(row, "k5-Table-row-odd");
        }
        String rowStyle = rowStyle(row, obj);
        if (rowStyle != null) {
            table.getRowFormatter().addStyleName(row, rowStyle);
        }

        if (rowsOrderable && rowOrderHandler != null) {
            final int fRow = row;
            Anchor up = new Anchor(messages.up());
            up.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    move(fRow - 1, -1);
                }
            });
            up.addStyleName("k5-Table-order-up");
            Anchor down = new Anchor(messages.down());
            down.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    move(fRow - 1, 1);
                }
            });
            down.addStyleName("k5-Table-order-down");
            HorizontalPanel hp = new HorizontalPanel();
            hp.add(up);
            hp.add(down);
            int rightMargin = 1;
            if (rowsEditable) {
                rightMargin++;
            }
            table.setWidget(row, numberOfColumns - rightMargin, hp);
        }
        if (rowsEditable && rowEditHandler != null) {
            Anchor edit = new Anchor(messages.edit());
            String href = rowEditHandler.getHref(obj);
            if (href != null) {
                edit.setHref(href);
            } else {
                edit.addClickHandler(new ClickHandler() {

                    @Override
                    public void onClick(ClickEvent event) {
                        rowEditHandler.onRowEditClicked(obj);
                    }
                });
            }
            table.setWidget(row, numberOfColumns - 1, edit);
        }

        row++;
    }

}

From source file:com.dawg6.web.dhcalc.client.AboutDialog.java

License:Open Source License

public AboutDialog() {

    flexTable = new FlexTable();
    flexTable.setBorderWidth(0);// w ww .  j a va 2s.com
    flexTable.setCellPadding(5);
    initWidget(flexTable);

    Label lblNewLabel = new Label("DH DPS Calculator");
    lblNewLabel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    lblNewLabel.setStyleName("boldText");
    lblNewLabel.setWordWrap(false);
    flexTable.setWidget(0, 0, lblNewLabel);
    flexTable.getCellFormatter().setVerticalAlignment(0, 0, HasVerticalAlignment.ALIGN_TOP);
    flexTable.getCellFormatter().setHorizontalAlignment(0, 0, HasHorizontalAlignment.ALIGN_RIGHT);

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel.setSpacing(5);
    horizontalPanel.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    flexTable.setWidget(1, 0, horizontalPanel);

    Label lblNewLabel_1 = new Label("Version:");
    horizontalPanel.add(lblNewLabel_1);

    versionLabel = new Label(Version.getVersionString());
    horizontalPanel.add(versionLabel);
    flexTable.getCellFormatter().setHorizontalAlignment(1, 0, HasHorizontalAlignment.ALIGN_CENTER);

    HorizontalPanel horizontalPanel_1 = new HorizontalPanel();
    horizontalPanel_1.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_1.setSpacing(5);
    horizontalPanel_1.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    flexTable.setWidget(3, 0, horizontalPanel_1);

    Label lblWritteByDawg = new Label("Written By:");
    horizontalPanel_1.add(lblWritteByDawg);

    Anchor label_1 = new Anchor("New label");
    label_1.setTarget("_blank");
    label_1.setText("dawg6");
    label_1.setHref("http://us.battle.net/d3/en/profile/Dawg6-1416/");
    horizontalPanel_1.add(label_1);

    Label lblNewLabel_2 = new Label("(");
    horizontalPanel_1.add(lblNewLabel_2);

    Anchor anchor_1 = new Anchor("New label");
    anchor_1.setText("scott@dawg6.com");
    anchor_1.setTarget("_blank");
    anchor_1.setHref("mailto:scott@dawg6.com");
    horizontalPanel_1.add(anchor_1);

    Label lblNewLabel_3 = new Label(")");
    horizontalPanel_1.add(lblNewLabel_3);
    flexTable.getCellFormatter().setHorizontalAlignment(3, 0, HasHorizontalAlignment.ALIGN_CENTER);

    HorizontalPanel horizontalPanel_2 = new HorizontalPanel();
    horizontalPanel_2.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_2.setSpacing(5);
    horizontalPanel_2.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    flexTable.setWidget(5, 0, horizontalPanel_2);

    Label lblRedditThread = new Label("Reddit Thread:");
    horizontalPanel_2.add(lblRedditThread);

    Anchor anchor = new Anchor("New label");
    anchor.setTarget("_blank");
    anchor.setText("http://redd.it/2jiynj");
    anchor.setHref("http://redd.it/2jiynj");
    horizontalPanel_2.add(anchor);
    flexTable.getCellFormatter().setHorizontalAlignment(5, 0, HasHorizontalAlignment.ALIGN_CENTER);

    HorizontalPanel horizontalPanel_3 = new HorizontalPanel();
    horizontalPanel_3.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_3.setSpacing(5);
    horizontalPanel_3.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    flexTable.setWidget(6, 0, horizontalPanel_3);

    Label lblBlizzardThread = new Label("Blizzard Thread:");
    horizontalPanel_3.add(lblBlizzardThread);

    Anchor anchor_2 = new Anchor("New label");
    anchor_2.setText("http://us.battle.net/d3/en/forum/topic/18706673688");
    anchor_2.setTarget("_blank");
    anchor_2.setHref("http://us.battle.net/d3/en/forum/topic/18706673688");
    horizontalPanel_3.add(anchor_2);
    flexTable.getCellFormatter().setHorizontalAlignment(6, 0, HasHorizontalAlignment.ALIGN_CENTER);

    HorizontalPanel horizontalPanel_4 = new HorizontalPanel();
    horizontalPanel_4.setSpacing(5);
    horizontalPanel_4.setHorizontalAlignment(HasHorizontalAlignment.ALIGN_CENTER);
    flexTable.setWidget(7, 0, horizontalPanel_4);

    Anchor anchor_3 = new Anchor("New label");
    anchor_3.setText("Change Log");
    anchor_3.setTarget("_blank");
    anchor_3.setHref("changeLog.txt?v2");
    horizontalPanel_4.add(anchor_3);

    Anchor anchor_4 = new Anchor("New label");
    anchor_4.setText("To-do List");
    anchor_4.setTarget("_blank");
    anchor_4.setHref("https://github.com/dawg6/dhcalc/issues");
    horizontalPanel_4.add(anchor_4);
    flexTable.getCellFormatter().setHorizontalAlignment(7, 0, HasHorizontalAlignment.ALIGN_CENTER);

    Anchor anchor_5 = new Anchor("Source Code");
    anchor_5.setTarget("_blank");
    anchor_5.setHref("https://github.com/dawg6/dhcalc");
    horizontalPanel_4.add(anchor_5);
    flexTable.getCellFormatter().setHorizontalAlignment(7, 0, HasHorizontalAlignment.ALIGN_CENTER);

}

From source file:com.dawg6.web.dhcalc.client.BuffPanel.java

License:Open Source License

public BuffPanel() {

    CaptionPanel cptnpnlNewPanel = new CaptionPanel("Follower Buffs");
    initWidget(cptnpnlNewPanel);//from  w  ww  . ja  va 2  s  .c  om

    FlexTable flexTable = new FlexTable();
    cptnpnlNewPanel.setContentWidget(flexTable);

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel.setSpacing(5);
    flexTable.setWidget(0, 0, horizontalPanel);

    Label lblNewLabel = new Label("Enchantress");
    horizontalPanel.add(lblNewLabel);

    Anchor anchor = new Anchor("Focused Mind:");
    anchor.setTarget("_blank");
    anchor.setHref("http://us.battle.net/d3/en/follower/enchantress/skill/focused-mind");
    horizontalPanel.add(anchor);

    Label lblNewLabel_1 = new Label((String) null);
    horizontalPanel.add(lblNewLabel_1);

    focusedMind = new SimpleCheckBox();
    flexTable.setWidget(0, 1, focusedMind);

    HorizontalPanel horizontalPanel_1 = new HorizontalPanel();
    horizontalPanel_1.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_1.setSpacing(5);
    flexTable.setWidget(1, 0, horizontalPanel_1);

    Label lblScoundrel = new Label("Scoundrel");
    horizontalPanel_1.add(lblScoundrel);

    Anchor anchor_1 = new Anchor("Anatomy:");
    anchor_1.setTarget("_blank");
    anchor_1.setHref("http://us.battle.net/d3/en/follower/scoundrel/skill/anatomy");
    horizontalPanel_1.add(anchor_1);

    anatomy = new SimpleCheckBox();
    flexTable.setWidget(1, 1, anatomy);

    HorizontalPanel horizontalPanel_2 = new HorizontalPanel();
    horizontalPanel_2.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_2.setSpacing(5);
    flexTable.setWidget(2, 0, horizontalPanel_2);

    Label label = new Label("Scoundrel");
    horizontalPanel_2.add(label);

    Anchor anchor_2 = new Anchor("Hysteria:");
    anchor_2.setTarget("_blank");
    anchor_2.setHref("http://us.battle.net/d3/en/follower/scoundrel/skill/hysteria");
    horizontalPanel_2.add(anchor_2);

    hysteria = new SimpleCheckBox();
    flexTable.setWidget(2, 1, hysteria);

    HorizontalPanel horizontalPanel_3 = new HorizontalPanel();
    horizontalPanel_3.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_3.setSpacing(5);
    flexTable.setWidget(3, 0, horizontalPanel_3);

    Label lblTemplar = new Label("Templar");
    horizontalPanel_3.add(lblTemplar);

    Anchor anchor_3 = new Anchor("Hysteria:");
    anchor_3.setHTML("Inspire:");
    anchor_3.setText("Inspire:");
    anchor_3.setTarget("_blank");
    anchor_3.setHref("http://us.battle.net/d3/en/follower/templar/skill/inspire");
    horizontalPanel_3.add(anchor_3);

    inspire = new SimpleCheckBox();
    flexTable.setWidget(3, 1, inspire);
}

From source file:com.dawg6.web.dhcalc.client.CDRPanel.java

License:Open Source License

private void updateSkills() {
    while (flexTable.getRowCount() > this.skillRow) {
        flexTable.removeRow(this.skillRow);
    }/*from  w w w .jav  a  2 s. com*/

    int row = skillRow;

    for (Map.Entry<ActiveSkill, Rune> e : skills.entrySet()) {

        ActiveSkill skill = e.getKey();
        Rune rune = e.getValue();

        if ((skill == ActiveSkill.Companion) && (rune != Rune.Wolf)
                && (this.getSetCount(ItemSet.Marauders.getSlug()) >= 2))
            rune = Rune.Wolf;

        double cd = skill.getCooldown(rune);

        if (cd > 0) {
            double duration = skill.getDuration(rune);

            Anchor a = new Anchor(skill.getLongName() + "/" + rune.getLongName());
            a.setHref(skill.getUrl(rune));
            flexTable.setWidget(row, 0, a);

            cd = cd * (1.0 - this.cdr);

            if ((skill == ActiveSkill.Vengeance) && this.isItem(SpecialItemType.Dawn)) {
                double d = this.getItemAttribute(SpecialItemType.Dawn, SpecialItemType.PERCENT);
                cd = cd * (1.0 - d);
            }

            double uptime;

            if (cd <= duration)
                uptime = 1.0;
            else
                uptime = duration / cd;

            Label l = new Label("Cooldown " + Util.format(Math.round(cd * 100.0) / 100.0) + "s");
            flexTable.setWidget(row, 2, l);

            Label l2 = new Label("Uptime " + Util.format(Math.round(uptime * 10000.0) / 100.0) + "%");
            flexTable.setWidget(row, 3, l2);

            row++;
        }
    }
}

From source file:com.dawg6.web.dhcalc.client.GearPanel.java

License:Open Source License

@SuppressWarnings("unchecked")
public GearPanel() {

    HorizontalPanel panel = new HorizontalPanel();
    initWidget(panel);/* w  w w. jav  a 2s  . co  m*/

    VerticalPanel verticalPanel_1 = new VerticalPanel();
    panel.add(verticalPanel_1);

    CaptionPanel captionPanel = new CaptionPanel("Current Items");
    verticalPanel_1.add(captionPanel);

    FlexTable table = new FlexTable();
    captionPanel.add(table);

    CaptionPanel cptnpnlNewPanel = new CaptionPanel("Saved Items");
    panel.add(cptnpnlNewPanel);

    VerticalPanel verticalPanel = new VerticalPanel();
    cptnpnlNewPanel.setContentWidget(verticalPanel);
    verticalPanel.setSize("5cm", "3cm");

    savedItems = new ListBox();
    verticalPanel.add(savedItems);
    savedItems.setVisibleItemCount(20);
    savedItems.setWidth("100%");

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.setSpacing(5);
    verticalPanel.add(horizontalPanel);

    Button btnNewButton = new Button("New button");
    btnNewButton.setText("Rename...");
    horizontalPanel.add(btnNewButton);

    btnNewButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            renameItem();
        }
    });

    Button btnNewButton_1 = new Button("New button");
    btnNewButton_1.setText("Delete");
    horizontalPanel.add(btnNewButton_1);

    btnNewButton_1.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            deleteItem();
        }
    });

    int row = 0;

    for (Slot slot : Slot.values())
        if (!slot.isCube()) {
            final Slot thisSlot = slot;

            Label label = new Label(slot.name());
            label.addStyleName("boldText");
            table.setWidget(row, 0, label);

            Anchor status = new Anchor("unloaded");
            status.setTarget("_blank");
            status.setHref("javascript:void(0);");
            table.setWidget(row, 1, status);
            labels.put(slot, status);
            status.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    event.preventDefault();
                    clickItem(thisSlot);

                }
            });

            Button saveButton = new Button("save");
            table.setWidget(row, 2, saveButton);
            saveButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    saveSlot(thisSlot);
                }
            });

            Button replaceButton = new Button("replace");
            table.setWidget(row, 3, replaceButton);
            replaceButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    replaceSlot(thisSlot);
                }
            });

            Button clearButton = new Button("clear");
            table.setWidget(row, 4, clearButton);
            clearButton.addClickHandler(new ClickHandler() {

                @Override
                public void onClick(ClickEvent event) {
                    clearSlot(thisSlot);
                }
            });

            row++;
        }

    Storage storage = getStorage();

    if (storage != null) {
        String data = storage.getItem(SAVED_ITEMS);
        JsoArray<Entry> list = null;

        if (data != null) {
            list = JsonUtils.safeEval(data);
        } else {
            list = (JsoArray<Entry>) JavaScriptObject.createArray();
        }

        for (int i = 0; i < list.length(); i++) {
            Entry e = list.get(i);
            savedItems.addItem(e.getName(), e.getItem());
        }

    }

    setVisible(false);
}

From source file:com.dawg6.web.dhcalc.client.GearPanel.java

License:Open Source License

private void setItem(Slot slot, final ItemHolder item) {
    final Anchor label = labels.get(slot);

    String text = "unloaded";
    String url = "javascript:void(0);";

    if (item != null) {
        items.put(slot, item);/*  w w  w . ja v a2  s.  c  om*/
        url = "http://us.battle.net/d3/en/itemData/" + item.getTooltip();

        if (this.isVisible()) {
            item.getInfo(new DefaultCallback<ItemInformation>() {

                @Override
                protected void doOnSuccess(ItemInformation result) {
                    label.setText(result.name);
                }

            });
        }

    } else {
        items.remove(slot);
        label.setText(text);
    }

    label.setHref(url);
}

From source file:com.dawg6.web.dhcalc.client.GearPanel.java

License:Open Source License

public void updateLabels() {
    for (Slot s : Slot.values())
        if (!s.isCube()) {
            final Anchor label = labels.get(s);
            ItemHolder item = items.get(s);

            if (item != null) {
                String url = "http://us.battle.net/d3/en/itemData/" + item.getTooltip();
                label.setHref(url);

                item.getInfo(new DefaultCallback<ItemInformation>() {

                    @Override/*from  w  w w.  j a  v  a 2s  . c o  m*/
                    protected void doOnSuccess(ItemInformation result) {
                        label.setText(result.name);
                    }

                });
            } else {
                label.setHref("javascript:void(0)");
                label.setText("Empty");
            }
        }
}

From source file:com.dawg6.web.dhcalc.client.GemsPanel.java

License:Open Source License

public GemsPanel() {

    CaptionPanel captionPanel = new CaptionPanel("Legendary Gems");
    initWidget(captionPanel);//from ww w .ja v  a  2  s.c om

    table = new FlexTable();
    captionPanel.setContentWidget(table);

    List<GemSkill> gems = new Vector<GemSkill>();

    for (GemSkill gem : GemSkill.values())
        gems.add(gem);

    Collections.sort(gems, new Comparator<GemSkill>() {

        @Override
        public int compare(GemSkill o1, GemSkill o2) {
            return o1.getDisplayName().toLowerCase().compareTo(o2.getDisplayName().toLowerCase());
        }
    });

    for (int i = 0; i < NUM_GEMS; i++) {
        final int row = i;
        Anchor anchor = new Anchor("Gem " + (i + 1));
        anchor.setWordWrap(false);
        anchor.setTarget("_blank");
        anchor.setHref("javascript:void(0)");
        anchors.add(anchor);
        table.setWidget(row, 0, anchor);

        ListBox list = new ListBox();
        list.addItem("None", "");
        list.setWidth("100%");
        table.setWidget(row, 1, list);
        listBoxes.add(list);
        list.setSelectedIndex(0);
        selected.add(null);

        for (GemSkill gem : gems) {
            list.addItem(gem.getDisplayName(), gem.name());
        }

        list.addChangeHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {
                gemChanged(row);
            }
        });

        Label label = new Label("Level:", false);
        table.setWidget(row, 2, label);

        NumberSpinner level = new NumberSpinner();
        level.setMax(100);
        level.setVisibleLength(4);
        table.setWidget(row, 3, level);
        levels.add(level);
        level.addChangeHandler(new ChangeHandler() {

            @Override
            public void onChange(ChangeEvent event) {
                levelChanged(row);
            }
        });

        attributes.add(null);
    }

}

From source file:com.dawg6.web.dhcalc.client.GemsPanel.java

License:Open Source License

private boolean setGem(final int i, GemSkill gem, GemAttributeData gd) {

    if ((gem != null) && (gd == null)) {
        gd = new GemAttributeData();
        gd.level = 0;//from   w  w w. j  a  va2s  . c o  m

        for (GemSkill.Attribute a : gem.getAttributes()) {
            gd.put(a.getLabel(), 0);
        }
    }

    boolean gemChanged = false;
    boolean valueChanged = false;

    ListBox list = listBoxes.get(i);
    GemSkill prev = selected.get(i);
    int next = 0;

    if (gem == null) {
        next = 0;
    } else {
        int num = list.getItemCount();
        boolean found = false;

        for (int n = 1; n < num; n++) {
            String value = list.getValue(n);

            if (value.equals(gem.name())) {
                next = n;
                found = true;
                break;
            }
        }

        if (!found) {
            next = 0;
            gd = null;
        }
    }

    if (gem != prev) {
        list.setSelectedIndex(next);
        selected.set(i, gem);
        gemChanged = true;
    }

    NumberSpinner level = levels.get(i);
    int prevLevel = level.getValue();
    int nextLevel = prevLevel;

    if (gem == null) {
        nextLevel = 0;
    } else {
        nextLevel = gd.level;
    }

    if (nextLevel != prevLevel) {
        level.setValue(nextLevel);
        valueChanged = true;
    }

    if (gemChanged) {

        Anchor anchor = anchors.get(i);

        if (gem == null) {
            anchor.setHref("javascript:void(0)");
        } else {
            anchor.setHref(gem.getUrl());
        }

        if (attributes.get(i) != null) {
            table.removeCell(i, 5);
            table.removeCell(i, 4);
            attributes.set(i, null);
        }

        if ((gem != null) && (gem.getAttributes() != null) && (gem.getAttributes().length > 0)) {

            // TODO Handle more than 1 Attribute per Gem
            Label label = new Label("# " + gem.getAttributes()[0].getLabel() + ":", false);
            NumberSpinner spinner = new NumberSpinner();
            spinner.setMax(gem.getAttributes()[0].getMaxValue(gd.level));
            spinner.setVisibleLength(4);
            table.setWidget(i, 4, label);
            table.setWidget(i, 5, spinner);
            attributes.set(i, spinner);
            spinner.setValue(gd.get(gem.getAttributes()[0].getLabel()));

            spinner.addChangeHandler(new ChangeHandler() {

                @Override
                public void onChange(ChangeEvent event) {
                    attributeChanged(i);
                }
            });
        }
    } else {
        if ((gem == null) || (gem.getAttributes() == null) || (gem.getAttributes().length == 0)) {
            // nothing changes
        } else {
            NumberSpinner a = attributes.get(i);

            int prevValue = a.getValue();
            Integer nextValue = gd.get(gem.getAttributes()[0].getLabel());

            if (nextValue != prevValue) {
                a.setValue(nextValue);
                valueChanged = true;
            }
        }
    }

    return gemChanged | valueChanged;
}