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

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

Introduction

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

Prototype

public HorizontalPanel() 

Source Link

Document

Creates an empty horizontal panel.

Usage

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

License:Open Source License

public AboutDialog() {

    flexTable = new FlexTable();
    flexTable.setBorderWidth(0);/*from w  w w . j a v a  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.BaseSpinner.java

License:Open Source License

/**
 * @wbp.parser.constructor//from   www .  j  av  a2  s.co m
 */
protected BaseSpinner(ValueBox<T> box, String text, T min, T max, T increment) {
    this.box = box;
    this.min = min;
    this.max = max;
    this.increment = increment;

    box.addKeyUpHandler(new KeyUpHandler() {

        @Override
        public void onKeyUp(KeyUpEvent event) {
            keyPressed();
        }
    });

    box.addFocusHandler(new FocusHandler() {

        @Override
        public void onFocus(FocusEvent event) {
            normalize();
        }
    });

    box.addBlurHandler(new BlurHandler() {

        @Override
        public void onBlur(BlurEvent event) {
            normalize();
        }
    });

    box.addChangeHandler(new ChangeHandler() {
        @Override
        public void onChange(ChangeEvent event) {
            normalize();
        }
    });

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.setStyleName("spinner");
    horizontalPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    initWidget(horizontalPanel);

    down = new Button();
    down.setText("-");
    down.setStyleName("spinnerDownButton");
    horizontalPanel.add(down);

    down.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            increment(-1);
        }
    });

    box.setStyleName("spinnerBox");
    box.setText(text);
    horizontalPanel.add(box);

    box.addClickHandler(new ClickHandler() {
        @Override
        public void onClick(ClickEvent event) {
            BaseSpinner.this.box.selectAll();
        }
    });

    up = new Button();
    up.setText("+");
    up.setStyleName("spinnerUpButton");
    horizontalPanel.add(up);

    up.addClickHandler(new ClickHandler() {

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

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

License:Open Source License

public BPData() {

    VerticalPanel panel = new VerticalPanel();
    initWidget(panel);/*w w  w . ja v a 2 s .  c o  m*/

    HorizontalPanel horizontalPanel = new HorizontalPanel();
    horizontalPanel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel.setSpacing(5);
    panel.add(horizontalPanel);

    Label lblNewLabel = new Label("Skill:");
    lblNewLabel.setStyleName("boldText");
    horizontalPanel.add(lblNewLabel);

    skills = new ListBox();
    horizontalPanel.add(skills);

    Label lblNewLabel2 = new Label("Weapon Type:");
    lblNewLabel2.setStyleName("boldText");
    horizontalPanel.add(lblNewLabel2);

    weaponType = new ListBox();
    horizontalPanel.add(weaponType);

    for (WeaponType t : WeaponType.values()) {
        weaponType.addItem(t.getName(), t.name());
    }

    CaptionPanel cptnpnlNewPanel = new CaptionPanel("Skill Break Point Data");
    panel.add(cptnpnlNewPanel);

    table = new FlexTable();
    cptnpnlNewPanel.setContentWidget(table);
    table.setSize("5cm", "3cm");
    table.setStyleName("breakpointTable");
    table.setCellPadding(5);
    table.setBorderWidth(1);

    table.getRowFormatter().addStyleName(0, "headerRow");

    int col = 0;

    Label bp = new Label("BP");
    bp.setWordWrap(false);
    table.setWidget(0, col++, bp);

    Label fpa = new Label("FPA");
    fpa.setWordWrap(false);
    table.setWidget(0, col++, fpa);

    Label minAps = new Label("Min APS");
    minAps.setWordWrap(false);
    table.setWidget(0, col++, minAps);

    Label actualAps = new Label("Actual APS");
    actualAps.setWordWrap(false);
    table.setWidget(0, col++, actualAps);

    List<Pair<String, String>> list = new Vector<Pair<String, String>>();

    for (ActiveSkill s : ActiveSkill.values()) {

        if (DamageFunction.hasDamage(s) && (s.getFrames() != 0))
            list.add(new Pair<String, String>(s.getLongName(), s.name()));
    }

    Collections.sort(list, new Comparator<Pair<String, String>>() {

        @Override
        public int compare(Pair<String, String> o1, Pair<String, String> o2) {
            return o1.getA().toLowerCase().compareTo(o2.getA().toLowerCase());
        }
    });

    for (Pair<String, String> p : list) {
        skills.addItem(p.getA(), p.getB());
    }

    skills.addChangeHandler(new ChangeHandler() {

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

    weaponType.addChangeHandler(new ChangeHandler() {

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

    skills.setSelectedIndex(0);
    weaponType.setSelectedIndex(0);

    skillChanged();
}

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

License:Open Source License

public BuffPanel() {

    CaptionPanel cptnpnlNewPanel = new CaptionPanel("Follower Buffs");
    initWidget(cptnpnlNewPanel);//  w  w  w .j  a v a2  s.c o m

    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

public CDRPanel() {

    CaptionPanel cptnpnlCooldownReduction = new CaptionPanel("Cooldown Reduction");
    initWidget(cptnpnlCooldownReduction);

    flexTable = new FlexTable();
    flexTable.setCellPadding(2);//from w ww.j a v a  2s.  c om
    cptnpnlCooldownReduction.setContentWidget(flexTable);

    Label lblNewLabel = new Label("Helm (Diamond):");
    lblNewLabel.setStyleName("boldText");
    lblNewLabel.setWordWrap(false);
    flexTable.setWidget(0, 0, lblNewLabel);

    diamond = new ListBox();
    flexTable.setWidget(0, 2, diamond);

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

    Label lblShoulders = new Label("Shoulders (%):");
    lblShoulders.setWordWrap(false);
    lblShoulders.setStyleName("boldText");
    flexTable.setWidget(2, 0, lblShoulders);

    shoulders = new NumberSpinner();
    shoulders.setVisibleLength(4);
    flexTable.setWidget(2, 2, shoulders);

    Label lblGloves = new Label("Gloves (%):");
    lblGloves.setWordWrap(false);
    lblGloves.setStyleName("boldText");
    flexTable.setWidget(3, 0, lblGloves);

    gloves = new NumberSpinner();
    gloves.setVisibleLength(4);
    flexTable.setWidget(3, 2, gloves);

    Label lblAmulet = new Label("Amulet (%):");
    lblAmulet.setWordWrap(false);
    lblAmulet.setStyleName("boldText");
    flexTable.setWidget(4, 0, lblAmulet);

    amulet = new NumberSpinner();
    amulet.setVisibleLength(4);
    flexTable.setWidget(4, 2, amulet);

    Label lblRing = new Label("Ring 1 (%):");
    lblRing.setWordWrap(false);
    lblRing.setStyleName("boldText");
    flexTable.setWidget(5, 0, lblRing);

    ring1 = new NumberSpinner();
    ring1.setVisibleLength(4);
    flexTable.setWidget(5, 2, ring1);

    Label lblRing_1 = new Label("Ring 2 (%):");
    lblRing_1.setWordWrap(false);
    lblRing_1.setStyleName("boldText");
    flexTable.setWidget(6, 0, lblRing_1);

    ring2 = new NumberSpinner();
    ring2.setVisibleLength(4);
    flexTable.setWidget(6, 2, ring2);

    Label lblBelt = new Label("Belt (%):");
    lblBelt.setWordWrap(false);
    lblBelt.setStyleName("boldText");
    flexTable.setWidget(7, 0, lblBelt);

    belt = new NumberSpinner();
    belt.setVisibleLength(4);
    flexTable.setWidget(7, 2, belt);

    Label lblWeapon = new Label("Main Hand (%):");
    lblWeapon.setWordWrap(false);
    lblWeapon.setStyleName("boldText");
    flexTable.setWidget(8, 0, lblWeapon);

    weapon = new NumberSpinner();
    weapon.setVisibleLength(4);
    flexTable.setWidget(8, 2, weapon);

    Label lblQuiver = new Label("Off Hand (%):");
    lblQuiver.setWordWrap(false);
    lblQuiver.setStyleName("boldText");
    flexTable.setWidget(9, 0, lblQuiver);

    quiver = new NumberSpinner();
    quiver.setVisibleLength(4);
    flexTable.setWidget(9, 2, quiver);

    for (GemLevel l : GemLevel.values()) {
        this.diamond.addItem(l.getDisplayName(), l.name());
    }

    diamond.setSelectedIndex(0);

    this.shoulders.setMax(8);
    this.gloves.setMax(8);
    this.ring1.setMax(8);
    this.ring2.setMax(8);
    this.belt.setMax(8);
    this.weapon.setMax(10);
    this.quiver.setMax(10);
    this.amulet.setMax(8);

    Label l10 = new Label("Effective CDR:");
    l10.addStyleName("boldText");
    l10.setWordWrap(false);
    flexTable.setWidget(10, 0, l10);
    this.effCDR = new Label("0.0%");
    this.effCDR.addStyleName("boldText");
    flexTable.setWidget(10, 2, effCDR);

    this.skills = new TreeMap<ActiveSkill, Rune>();
    this.items = new TreeMap<Slot, ItemHolder>();

    this.cdr = 0.0;

    updateSkills();
}

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 ww.j av a 2 s .  c om

    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.LeaderboardPanel.java

License:Open Source License

protected void populateLeaders(Leaderboard result) {
    leaders = new ListBox();

    for (LeaderboardRow row : result.rows) {
        Long rift = null;//from  w  ww.j  a  v a 2s  .  c om
        Long time = null;
        Long rank = null;

        for (LeaderboardData d : row.data) {
            if (d.id.equals("Rank")) {
                rank = d.number;
            } else if (d.id.equals("RiftLevel")) {
                rift = d.number;
            } else if (d.id.equals("RiftTime")) {
                time = d.timestamp;
            }

            if ((rift != null) && (time != null) && (rank != null)) {
                break;
            }
        }

        if ((rift != null) && (time != null) && (rank != null)) {

            for (Account pl : row.players) {
                String btag = null;
                Long heroId = null;
                boolean isDh = false;

                for (LeaderboardData d : pl.data) {
                    if (d.id.equals("HeroClass")) {
                        if (d.string.equals("demon hunter")) {
                            isDh = true;
                        } else {
                            break;
                        }
                    } else if (d.id.equals("HeroBattleTag")) {
                        btag = d.string;
                    } else if (d.id.equals("HeroId")) {
                        heroId = d.number;
                    }

                    if (isDh && (btag != null) && (heroId != null))
                        break;
                }

                if (isDh && (btag != null) && (heroId != null)) {
                    long minutes = time / 60000L;
                    long seconds = (time - (minutes * 60000)) / 1000L;
                    String ts = NumberFormat.getFormat("00").format(minutes) + ":"
                            + NumberFormat.getFormat("00").format(seconds);
                    String label = rank + ") Level " + rift + ": " + ts + " - " + btag;
                    leaders.addItem(label, btag + "#" + heroId);
                }
            }
        }
    }

    HorizontalPanel row = new HorizontalPanel();
    row.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    row.setSpacing(5);

    row.add(leaders);

    this.table.setWidget(this.leaderboardRow, 0, row);
    this.table.getFlexCellFormatter().setColSpan(this.leaderboardRow, 0, 6);

    Anchor career = new Anchor("profile");
    career.setHref("javascript:void(0)");
    row.add(career);

    career.addClickHandler(new ClickHandler() {

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

    Anchor hero = new Anchor("hero");
    hero.setHref("javascript:void(0)");
    row.add(hero);

    hero.addClickHandler(new ClickHandler() {

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

    hero.addClickHandler(new ClickHandler() {

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

    Anchor paperdoll = new Anchor("paperdoll");
    paperdoll.setHref("javascript:void(0)");
    row.add(paperdoll);

    paperdoll.addClickHandler(new ClickHandler() {

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

    Button button = new Button("Import Profile");
    row.add(button);

    button.addClickHandler(new ClickHandler() {

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

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

License:Open Source License

public MainPanel() {
    VerticalPanel panel = new VerticalPanel();
    initWidget(panel);/*from  w  w w .ja  va2 s . c o m*/
    panel.setWidth("");

    newsPanel = new HorizontalPanel();
    panel.add(newsPanel);

    HorizontalPanel horizontalPanel_4 = new HorizontalPanel();
    panel.add(horizontalPanel_4);

    VerticalPanel verticalPanel_2 = new VerticalPanel();
    horizontalPanel_4.add(verticalPanel_2);

    CaptionPanel cptnpnlNewPanel_7 = new CaptionPanel("Battle.Net Import");
    verticalPanel_2.add(cptnpnlNewPanel_7);

    VerticalPanel verticalPanel_6 = new VerticalPanel();
    verticalPanel_6.setSpacing(5);
    verticalPanel_6.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    cptnpnlNewPanel_7.setContentWidget(verticalPanel_6);

    HorizontalPanel horizontalPanel_5 = new HorizontalPanel();
    horizontalPanel_5.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_5.setSpacing(5);
    verticalPanel_6.add(horizontalPanel_5);

    Label lblNewLabel_18 = new Label("Realm:");
    horizontalPanel_5.add(lblNewLabel_18);

    realms = new ListBox();
    horizontalPanel_5.add(realms);

    Button ldrButton = new Button("Leaderboards...");
    horizontalPanel_5.add(ldrButton);

    ldrButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            showLeaderboards();
        }
    });

    Button helpButton = new Button("Help...");
    horizontalPanel_5.add(helpButton);

    helpButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            showHelp();
        }
    });

    HorizontalPanel horizontalPanel_7 = new HorizontalPanel();
    horizontalPanel_7.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_7.setSpacing(5);
    verticalPanel_6.add(horizontalPanel_7);

    Label lblNewLabel_19 = new Label("Battle Tag:");
    lblNewLabel_19.setWordWrap(false);
    horizontalPanel_7.add(lblNewLabel_19);

    battleTag = new TextBox();
    battleTag.setText("BnetName");
    battleTag.setVisibleLength(15);
    horizontalPanel_7.add(battleTag);

    Label lblNewLabel_20 = new Label("#");
    horizontalPanel_7.add(lblNewLabel_20);

    tagNumber = new TextBox();
    tagNumber.setText("1234");
    tagNumber.setVisibleLength(8);
    horizontalPanel_7.add(tagNumber);

    Button fetchButton = new Button("Get Hero List");
    fetchButton.setWidth("100px");
    horizontalPanel_7.add(fetchButton);
    fetchButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            fetchHeros(null);

        }
    });

    HorizontalPanel horizontalPanel_8 = new HorizontalPanel();
    horizontalPanel_8.setSpacing(5);
    horizontalPanel_8.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    verticalPanel_6.add(horizontalPanel_8);

    Label lblNewLabel_21 = new Label("Hero:");
    horizontalPanel_8.add(lblNewLabel_21);

    heroList = new ListBox();
    horizontalPanel_8.add(heroList);
    heroList.addItem("Enter BattleTag and Fetch", "");
    heroList.setSelectedIndex(0);

    Button importButton = new Button("New button");
    importButton.setText("Import");
    horizontalPanel_8.add(importButton);

    profileLinks = new HorizontalPanel();
    profileLinks.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    profileLinks.setSpacing(5);
    verticalPanel_6.add(profileLinks);

    profileLink = new Anchor("battle.net profile");
    profileLinks.add(profileLink);
    profileLink.setText("battle.net profile");
    profileLink.setHref("javascript:void(0)");
    profileLink.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            showProfile();
        }
    });

    Anchor anchor = new Anchor("paperdoll");
    anchor.setText("paperdoll");
    anchor.setHref("javascript:void(0)");
    profileLinks.add(anchor);

    anchor.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            showPaperdoll();
        }
    });

    Button itemsButton = new Button("Items...");
    profileLinks.add(itemsButton);

    itemsButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            showGearPanel();
        }
    });

    paragonPanel = new ParagonPanel();
    verticalPanel_2.add(paragonPanel);

    this.paragonPanel.getParagonIAS().addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {

            if (!disableListeners)
                updateDps();
        }
    });

    this.paragonPanel.getParagonDexterity().addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {

            if (!disableListeners)
                updateDps();
        }
    });

    this.paragonPanel.getParagonCDR().addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {

            if (!disableListeners)
                updateDps();
        }
    });

    this.paragonPanel.getParagonRCR().addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {

            if (!disableListeners)
                updateDps();
        }
    });

    savePanel = new SavePanel();
    verticalPanel_2.add(savePanel);

    savePanel.setFormListener(new FormListener() {

        @Override
        public FormData getFormData() {
            return MainPanel.this.getFormData();
        }

        @Override
        public void setFormData(FormData data) {
            MainPanel.this.restoreData(data);
        }
    });

    CaptionPanel cptnpnlNewPanel_4 = new CaptionPanel("Character Data");
    verticalPanel_2.add(cptnpnlNewPanel_4);

    FlexTable grid_1 = new FlexTable();
    grid_1.setCellPadding(5);
    cptnpnlNewPanel_4.setContentWidget(grid_1);
    Label label = new Label("Sheet DPS: ");
    label.setWordWrap(false);
    grid_1.setWidget(0, 0, label);
    label.setWidth("");

    sheetDps = new Label("0.0", false);
    sheetDps.addStyleName("boldText");
    grid_1.setWidget(0, 1, sheetDps);

    Label lblWeaponDamage = new Label("Weapon Damage:");
    lblWeaponDamage.setWordWrap(false);
    grid_1.setWidget(0, 2, lblWeaponDamage);
    lblWeaponDamage.setWidth("");

    avgWeaponDamage = new Label("0.0", false);
    avgWeaponDamage.setStyleName("boldText");
    grid_1.setWidget(0, 3, avgWeaponDamage);

    Label lblNewLabel = new Label("Attacks Per Second:");
    lblNewLabel.setWordWrap(false);
    grid_1.setWidget(1, 0, lblNewLabel);

    aps = new Label("0.0", false);
    aps.addStyleName("boldText");
    grid_1.setWidget(1, 1, aps);

    Label lblCritChance = new Label("Crit Chance:");
    lblCritChance.setWordWrap(false);
    grid_1.setWidget(1, 2, lblCritChance);

    critChance = new Label("0.0", false);
    critChance.setStyleName("boldText");
    grid_1.setWidget(1, 3, critChance);

    Label lblDexterity = new Label("Dexterity:");
    lblDexterity.setWordWrap(false);
    grid_1.setWidget(2, 0, lblDexterity);

    dexterity = new Label("0.0", false);
    dexterity.setStyleName("boldText");
    grid_1.setWidget(2, 1, dexterity);

    Label lblCritHitDamage = new Label("Crit Hit Damage:");
    lblCritHitDamage.setWordWrap(false);
    grid_1.setWidget(2, 2, lblCritHitDamage);

    critDamage = new Label("0.0", false);
    critDamage.setStyleName("boldText");
    grid_1.setWidget(2, 3, critDamage);

    Button calcDps = new Button("DPS/Break Point Calculator...");
    grid_1.setWidget(3, 2, calcDps);
    grid_1.getFlexCellFormatter().setColSpan(3, 2, 2);
    grid_1.getCellFormatter().setHorizontalAlignment(3, 2, HasHorizontalAlignment.ALIGN_RIGHT);
    grid_1.getCellFormatter().setVerticalAlignment(3, 2, HasVerticalAlignment.ALIGN_MIDDLE);

    CaptionPanel captionPanel = new CaptionPanel("Compare Builds");
    verticalPanel_2.add(captionPanel);

    buffPanel = new BuffPanel();
    verticalPanel_2.add(buffPanel);

    CaptionPanel cptnpnlNewPanel2 = new CaptionPanel("Simulate");
    verticalPanel_2.add(cptnpnlNewPanel2);

    FlexTable simTable = new FlexTable();
    cptnpnlNewPanel2.add(simTable);

    Label l1 = new Label("Simulation Time Limit (seconds):", false);
    simTable.setWidget(0, 0, l1);

    timeLimit = new NumberSpinner();
    timeLimit.setMin(1);
    timeLimit.setMax(FiringData.MAX_DURATION);
    timeLimit.setVisibleLength(5);
    timeLimit.setTitle("Maximum time (in simulation seconds) to let the simulation run");
    simTable.setWidget(0, 1, timeLimit);

    Button calcButton = new Button("Simulate");
    calcButton.setTitle("Press to run damage simulation");
    simTable.setWidget(0, 2, calcButton);
    calcButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            calculate();
        }
    });

    compareTable = new FlexTable();
    captionPanel.setContentWidget(compareTable);
    compareTable.setCellPadding(2);

    Button button_6 = new Button("Compare...");
    compareTable.setWidget(0, 0, button_6);
    button_6.setTitle("Click to see differences between each build");
    compareTable.getFlexCellFormatter().setRowSpan(0, 0, 2);

    button_6.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            compareBuilds();
        }
    });

    Label label_11 = new Label("APS:");
    label_11.setWordWrap(false);
    label_11.setStyleName("boldText");
    compareTable.setWidget(2, 0, label_11);

    Label label_8 = new Label("Weapon Damage:");
    label_8.setWordWrap(false);
    label_8.setStyleName("boldText");
    compareTable.setWidget(3, 0, label_8);

    Label label_14a = new Label("Time:");
    label_14a.setWordWrap(false);
    label_14a.setStyleName("boldText");
    compareTable.setWidget(5, 0, label_14a);

    Label label_14 = new Label("DPS:");
    label_14.setWordWrap(false);
    label_14.setStyleName("boldText");
    compareTable.setWidget(7, 0, label_14);

    for (int j = 0; j < 3; j++) {
        final int which = j;
        int col = (j * 2) + 1;

        Anchor button_3 = new Anchor("Set");
        button_3.setHref("javascript:void(0)");
        button_3.setTitle("Click to store the current build for comparison");
        compareTable.setWidget(0, col, button_3);
        compareTable.getFlexCellFormatter().setHorizontalAlignment(0, col, HasHorizontalAlignment.ALIGN_CENTER);

        button_3.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                Service.getInstance().checkVersion(null);
                storeBuild(which);
            }
        });

        Anchor button_4 = new Anchor("Restore");
        button_4.setHref("javascript:void(0)");
        button_4.setTitle("Click to retrieve this build");
        compareTable.setWidget(1, col - 1, button_4);
        compareTable.getFlexCellFormatter().setHorizontalAlignment(1, col - 1,
                HasHorizontalAlignment.ALIGN_CENTER);

        button_4.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                Service.getInstance().checkVersion(null);
                loadBuild(which);
            }
        });

        Anchor label_1 = new Anchor("Clear");
        label_1.setHref("javascript:void(0)");
        label_1.setTitle("Click to clear this build");
        compareTable.setWidget(9, col, label_1);
        compareTable.getFlexCellFormatter().setWidth(9, col + 1, "5px");
        compareTable.getFlexCellFormatter().setHorizontalAlignment(9, col, HasHorizontalAlignment.ALIGN_CENTER);

        label_1.addClickHandler(new ClickHandler() {

            @Override
            public void onClick(ClickEvent event) {
                Service.getInstance().checkVersion(null);
                clearBuild(which);
            }
        });

        for (int i = 0; i < 4; i++) {
            int row = 2 + ((i > 0) ? 1 + ((i - 1) * 2) : 0);

            Label l = new Label("No Data");
            l.setWordWrap(false);
            compareTable.setWidget(row, col, l);
            compareTable.getFlexCellFormatter().setHorizontalAlignment(row, col,
                    HasHorizontalAlignment.ALIGN_CENTER);

            if (j > 0) {
                Label pct = new Label("No Data");
                pct.setWordWrap(false);
                compareTable.setWidget(row + 1, col, pct);
                compareTable.getFlexCellFormatter().setHorizontalAlignment(row + 1, col,
                        HasHorizontalAlignment.ALIGN_CENTER);
            }
        }
    }

    calcDps.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            showDpsCalculator();
        }
    });

    importButton.addClickHandler(new ClickHandler() {

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

    this.paragonPanel.getParagonCC().addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {
            if (!disableListeners)
                updateDps();
        }
    });

    this.paragonPanel.getParagonCHD().addChangeHandler(new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {
            if (!disableListeners)
                updateDps();
        }
    });

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

    skills = new SkillsPanel();
    verticalPanel_1.add(skills);

    passives = new PassivesPanel();
    verticalPanel_1.add(passives);

    situational = new SituationalPanel();
    verticalPanel_1.add(situational);

    gemPanel = new GemsPanel();
    verticalPanel_1.add(gemPanel);

    VerticalPanel verticalPanel_3 = new VerticalPanel();
    horizontalPanel_4.add(verticalPanel_3);

    skillDamage = new SkillDamagePanel();
    verticalPanel_3.add(skillDamage);

    typeDamage = new DamageTypePanel();
    verticalPanel_3.add(typeDamage);

    itemPanel = new ItemPanel();
    verticalPanel_3.add(itemPanel);

    hatredPanel = new HatredPanel();
    verticalPanel_3.add(hatredPanel);

    playerBuffPanel = new PlayerBuffPanel();
    verticalPanel_1.add(playerBuffPanel);

    playerBuffPanel.getCalcWolfButton().addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            calculateWolfUptime();
        }
    });

    VerticalPanel vpanel = new VerticalPanel();
    horizontalPanel_4.add(vpanel);

    cdrPanel = new CDRPanel();
    vpanel.add(cdrPanel);

    rcrPanel = new RCRPanel();
    vpanel.add(rcrPanel);

    ClickHandler clickHandler3 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            if (!disableListeners) {
                Service.getInstance().checkVersion(null);
                calculator.calculate();
                updateDpsLabels();
            }
        }
    };

    ChangeHandler changeHandler = new ChangeHandler() {

        @Override
        public void onChange(ChangeEvent event) {
            if (!disableListeners) {
                disableListeners = true;
                calculator.calculate();
                updateDpsLabels();
                disableListeners = false;
            }
        }
    };

    itemPanel.addChangeHandler(changeHandler);

    playerBuffPanel.getBbv().addClickHandler(clickHandler3);
    playerBuffPanel.getBbvUptime().addChangeHandler(changeHandler);
    playerBuffPanel.getStretchTime().addClickHandler(clickHandler3);
    playerBuffPanel.getStretchTimeUptime().addChangeHandler(changeHandler);
    playerBuffPanel.getValor().addClickHandler(clickHandler3);
    playerBuffPanel.getValorActiveUptime().addChangeHandler(changeHandler);
    playerBuffPanel.getValorPassiveUptime().addChangeHandler(changeHandler);
    playerBuffPanel.getRetribution().addClickHandler(clickHandler3);
    playerBuffPanel.getRetributionUptime().addChangeHandler(changeHandler);

    buffPanel.getAnatomy().addClickHandler(clickHandler3);
    buffPanel.getFocusedMind().addClickHandler(clickHandler3);
    buffPanel.getHysteria().addClickHandler(clickHandler3);

    gemPanel.addChangeHandler(changeHandler);

    CaptionPanel cptnpnlNewPanel = new CaptionPanel("Simulation Output");
    panel.add(cptnpnlNewPanel);
    cptnpnlNewPanel.setWidth("");

    VerticalPanel verticalPanel_5 = new VerticalPanel();
    cptnpnlNewPanel.setContentWidget(verticalPanel_5);
    verticalPanel_5.setSize("100%", "3cm");

    HorizontalPanel horizontalPanel_19 = new HorizontalPanel();
    verticalPanel_5.add(horizontalPanel_19);
    horizontalPanel_19.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
    horizontalPanel_19.setSpacing(5);

    Button legendButton = new Button("New button");
    legendButton.setText("Legend...");
    horizontalPanel_19.add(legendButton);

    outputHeader = new FlexTable();
    outputHeader.setCellPadding(2);
    verticalPanel_5.add(outputHeader);

    Label lblNewLabel_27 = new Label("Average Weapon Damage (Main Hand):");
    outputHeader.setWidget(0, 0, lblNewLabel_27);
    lblNewLabel_27.setWordWrap(false);

    weaponDamage = new Label("00000");
    outputHeader.setWidget(0, 1, weaponDamage);
    weaponDamage.setStyleName("boldText");

    Label lblNewLabel_27a = new Label("(Off Hand):");
    outputHeader.setWidget(0, 2, lblNewLabel_27a);
    lblNewLabel_27a.setWordWrap(false);

    offHand_weaponDamage = new Label("00000");
    outputHeader.setWidget(0, 3, offHand_weaponDamage);
    offHand_weaponDamage.setStyleName("boldText");

    Label lblNewLabel_27b = new Label("(Dual Wield):");
    outputHeader.setWidget(0, 4, lblNewLabel_27b);
    lblNewLabel_27b.setWordWrap(false);

    dw_weaponDamage = new Label("00000");
    outputHeader.setWidget(0, 5, dw_weaponDamage);
    dw_weaponDamage.setStyleName("boldText");

    Label lblNewLabel_6 = new Label("Total Damage:");
    outputHeader.setWidget(2, 0, lblNewLabel_6);
    lblNewLabel_6.setWordWrap(false);

    Label lblNewLabel_6a = new Label("Time Elapsed:");
    outputHeader.setWidget(3, 0, lblNewLabel_6a);
    lblNewLabel_6a.setWordWrap(false);

    totalDamage = new Label("00000");
    outputHeader.setWidget(2, 1, totalDamage);
    totalDamage.setStyleName("boldText");

    timeElapsed = new Label("00000");
    outputHeader.setWidget(3, 1, timeElapsed);
    timeElapsed.setStyleName("boldText");

    Label lblNewLabel_7 = new Label("DPS:");
    outputHeader.setWidget(2, 2, lblNewLabel_7);
    lblNewLabel_7.setWordWrap(false);

    dps = new Label("00000");
    outputHeader.setWidget(2, 3, dps);
    dps.setStyleName("boldText");

    Label lblNewLabel_29a = new Label("Max Sentries:");
    outputHeader.setWidget(2, 4, lblNewLabel_29a);

    Label lblNewLabel_7b = new Label("+% Elite Damage:");
    outputHeader.setWidget(3, 4, lblNewLabel_7b);
    lblNewLabel_7b.setWordWrap(false);

    eliteDamage = new Label("00000");
    outputHeader.setWidget(3, 5, eliteDamage);
    eliteDamage.setStyleName("boldText");

    Button bpButton = new Button("New button");
    bpButton.setText("Break Points...");
    horizontalPanel_19.add(bpButton);

    bpButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            Service.getInstance().checkVersion(null);

            if (bpData == null)
                bpData = new BPData();

            ApplicationPanel.showDialogBox("Break Points", bpData, ApplicationPanel.OK, null);
        }
    });

    Button skillButton = new Button("New button");
    skillButton.setText("Skills...");
    horizontalPanel_19.add(skillButton);

    skillButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            Service.getInstance().checkVersion(null);

            if (skillData == null)
                skillData = new SkillData();

            ApplicationPanel.showDialogBox("Skills", skillData, ApplicationPanel.OK, null);
        }
    });

    outputPanel = new VerticalPanel();
    verticalPanel_5.add(outputPanel);

    HorizontalPanel horizontalPanel_9 = new HorizontalPanel();
    outputPanel.add(horizontalPanel_9);

    statTableCaption = new CaptionPanel("Stat Calculator");
    horizontalPanel_9.add(statTableCaption);

    VerticalPanel panel_1 = new VerticalPanel();
    horizontalPanel_9.add(panel_1);

    captionPanelTypeSummary = new CaptionPanel("Damage Type Summary");
    panel_1.add(captionPanelTypeSummary);

    summary = new FlexTable();
    summary.setCellPadding(5);
    summary.setBorderWidth(1);
    summary.setStyleName("outputTable");
    summary.setWidth("100%");
    captionPanelTypeSummary.setContentWidget(summary);

    Label lblNewLabel_17 = new Label("Type");
    lblNewLabel_17.setWordWrap(false);
    summary.setWidget(0, 0, lblNewLabel_17);

    Label label_1 = new Label("# Attacks");
    label_1.setWordWrap(false);
    label_1.setStyleName("dpsHeader");
    summary.setWidget(0, 1, label_1);

    Label label_2 = new Label("Per Attack");
    label_2.setWordWrap(false);
    label_2.setStyleName("dpsHeader");
    summary.setWidget(0, 2, label_2);

    Label lblTotalDamage = new Label("Total");
    lblTotalDamage.setStyleName("dpsHeader");
    lblTotalDamage.setWordWrap(false);
    summary.setWidget(0, 3, lblTotalDamage);
    summary.getColumnFormatter().addStyleName(1, "dpsCol");

    Label lblDps_1 = new Label("DPS");
    lblDps_1.setStyleName("dpsHeader");
    lblDps_1.setWordWrap(false);
    summary.setWidget(0, 4, lblDps_1);
    summary.getColumnFormatter().addStyleName(2, "dpsCol");

    Label lblOfTotal = new Label("% of Total");
    lblOfTotal.setStyleName("dpsHeader");
    lblOfTotal.setWordWrap(false);
    summary.setWidget(0, 5, lblOfTotal);

    captionPanelSkillSummary = new CaptionPanel("Skill Damage Summary");
    panel_1.add(captionPanelSkillSummary);

    skillSummary = new FlexTable();
    skillSummary.setStyleName("outputTable");
    skillSummary.setCellPadding(5);
    skillSummary.setBorderWidth(1);
    skillSummary.setWidth("100%");

    captionPanelSkillSummary.setContentWidget(skillSummary);

    Label lblSkill_2 = new Label("Skill");
    lblSkill_2.setWordWrap(false);
    skillSummary.setWidget(0, 0, lblSkill_2);

    Label lblAttacks = new Label("# Attacks");
    lblAttacks.setWordWrap(false);
    lblAttacks.setStyleName("dpsHeader");
    skillSummary.setWidget(0, 1, lblAttacks);

    Label lblPerAttack = new Label("Per Attack");
    lblPerAttack.setWordWrap(false);
    lblPerAttack.setStyleName("dpsHeader");
    skillSummary.setWidget(0, 2, lblPerAttack);

    Label lblTotal = new Label("Total");
    lblTotal.setStyleName("dpsHeader");
    lblTotal.setWordWrap(false);
    skillSummary.setWidget(0, 3, lblTotal);
    skillSummary.getColumnFormatter().addStyleName(1, "dpsCol");

    Label label_5 = new Label("DPS");
    label_5.setStyleName("dpsHeader");
    label_5.setWordWrap(false);
    skillSummary.setWidget(0, 4, label_5);
    skillSummary.getColumnFormatter().addStyleName(2, "dpsCol");

    Label label_6 = new Label("% of Total");
    label_6.setStyleName("dpsHeader");
    label_6.setWordWrap(false);
    skillSummary.setWidget(0, 5, label_6);

    captionPanelShooterSummary = new CaptionPanel("Shooter Summary");
    panel_1.add(captionPanelShooterSummary);

    shooterSummary = new FlexTable();
    captionPanelShooterSummary.setContentWidget(shooterSummary);
    shooterSummary.setStyleName("outputTable");
    shooterSummary.setCellPadding(5);
    shooterSummary.setBorderWidth(1);
    shooterSummary.setWidth("100%");

    Label lblSkill_2a = new Label("Shooter");
    lblSkill_2a.setWordWrap(false);
    shooterSummary.setWidget(0, 0, lblSkill_2a);

    Label lblAttacksa = new Label("# Attacks");
    lblAttacksa.setWordWrap(false);
    lblAttacksa.setStyleName("dpsHeader");
    shooterSummary.setWidget(0, 1, lblAttacksa);

    Label lblPerAttacka = new Label("Per Attack");
    lblPerAttacka.setWordWrap(false);
    lblPerAttacka.setStyleName("dpsHeader");
    shooterSummary.setWidget(0, 2, lblPerAttacka);

    Label lblTotala = new Label("Total");
    lblTotala.setStyleName("dpsHeader");
    lblTotala.setWordWrap(false);
    shooterSummary.setWidget(0, 3, lblTotala);
    shooterSummary.getColumnFormatter().addStyleName(1, "dpsCol");

    Label label_5a = new Label("DPS");
    label_5a.setStyleName("dpsHeader");
    label_5a.setWordWrap(false);
    shooterSummary.setWidget(0, 4, label_5a);
    shooterSummary.getColumnFormatter().addStyleName(2, "dpsCol");

    Label label_6b = new Label("% of Total");
    label_6b.setStyleName("dpsHeader");
    label_6b.setWordWrap(false);
    shooterSummary.setWidget(0, 5, label_6b);

    skillSummary.getColumnFormatter().addStyleName(3, "dpsCol");
    skillSummary.getRowFormatter().addStyleName(0, "headerRow");
    summary.getColumnFormatter().addStyleName(3, "dpsCol");
    summary.getRowFormatter().addStyleName(0, "headerRow");
    shooterSummary.getColumnFormatter().addStyleName(3, "dpsCol");
    shooterSummary.getRowFormatter().addStyleName(0, "headerRow");

    HorizontalPanel horizontalPanel_2 = new HorizontalPanel();
    outputPanel.add(horizontalPanel_2);

    captionPanelDamageLog = new CaptionPanel("Damage Log");
    horizontalPanel_2.add(captionPanelDamageLog);

    damageLog = new FlexTable();
    damageLog.setCellPadding(5);
    damageLog.setBorderWidth(1);
    captionPanelDamageLog.setContentWidget(damageLog);

    int col = 0;

    Label lblNewLabel_11 = new Label("Time", false);
    lblNewLabel_11.setWordWrap(false);
    lblNewLabel_11.setStyleName("dpsHeader");
    damageLog.setWidget(0, col, lblNewLabel_11);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_8a = new Label("Shooter", false);
    lblNewLabel_8a.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_8a);
    col++;

    Label lblNewLabel_8 = new Label("Skill", false);
    lblNewLabel_8.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_8);
    col++;

    Label lblNewLabel_9 = new Label("Rune", false);
    lblNewLabel_9.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_9);
    col++;

    Label lblNewLabel_10 = new Label("Type", false);
    lblNewLabel_10.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_10);
    col++;

    Label lblNewLabel_12a = new Label("+/- Hatred", false);
    lblNewLabel_12a.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_12a);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_12b = new Label("Hatred", false);
    lblNewLabel_12b.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_12b);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_12c = new Label("+/- Disc", false);
    damageLog.setWidget(0, col, lblNewLabel_12c);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_12d = new Label("Disc", false);
    damageLog.setWidget(0, col, lblNewLabel_12d);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_13 = new Label("Damage", false);
    lblNewLabel_13.setStyleName("dpsHeader");
    lblNewLabel_13.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_13);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_14 = new Label("Target HP", false);
    lblNewLabel_14.setStyleName("dpsHeader");
    lblNewLabel_14.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_14);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_15 = new Label("% HP", false);
    lblNewLabel_15.setStyleName("dpsHeader");
    lblNewLabel_15.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_15);
    damageLog.getColumnFormatter().addStyleName(col, "dpsCol");
    col++;

    Label lblNewLabel_15b = new Label("Target", false);
    lblNewLabel_15b.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_15b);
    col++;

    Label lblNewLabel_16 = new Label("Notes", false);
    lblNewLabel_16.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_16);
    col++;

    Label lblNewLabel_28 = new Label("Calculations", false);
    lblNewLabel_28.setWordWrap(false);
    damageLog.setWidget(0, col, lblNewLabel_28);
    col++;

    damageLog.addStyleName("outputTable");
    damageLog.getRowFormatter().addStyleName(0, "headerRow");

    calculator = new DPSCalculator(this);

    passives.addChangeHandler(changeHandler);

    ChangeHandler handler = new ChangeHandler() {

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

    ChangeHandler handler2 = new ChangeHandler() {

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

    ClickHandler clickHandler = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            updateCDRLabels();
        }

    };

    ClickHandler clickHandler2 = new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            updateRCRLabels();
        }

    };

    statTable = new FlexTable();
    statTableCaption.setContentWidget(statTable);
    statTable.setCellPadding(5);
    statTable.setBorderWidth(1);
    statTable.setStyleName("outputTable");
    statTable.getRowFormatter().addStyleName(0, "headerRow");

    col = 0;

    Label l1a = new Label("Stat");
    l1a.setStyleName("dpsHeader");
    l1a.setWordWrap(false);
    statTable.setWidget(0, col++, l1a);

    Label l2b = new Label("Time");
    l2b.setStyleName("dpsHeader");
    l2b.setWordWrap(false);
    statTable.setWidget(0, col++, l2b);

    Label l2c = new Label("%");
    l2c.setStyleName("dpsHeader");
    l2c.setWordWrap(false);
    statTable.setWidget(0, col++, l2c);

    Label l4 = new Label("Damage");
    l4.setStyleName("dpsHeader");
    l4.setWordWrap(false);
    statTable.setWidget(0, col++, l4);

    Label l2 = new Label("DPS");
    l2.setStyleName("dpsHeader");
    l2.setWordWrap(false);
    statTable.setWidget(0, col++, l2);

    Label l2a = new Label("%");
    l2a.setStyleName("dpsHeader");
    l2a.setWordWrap(false);
    statTable.setWidget(0, col++, l2a);

    captionPanelDamageLog.setContentWidget(damageLog);

    paragonPanel.getParagonCDR().addChangeHandler(handler);
    gemPanel.addChangeHandler(handler);
    cdrPanel.getDiamond().addChangeHandler(handler);
    cdrPanel.getShoulders().addChangeHandler(handler);
    cdrPanel.getAmulet().addChangeHandler(handler);
    cdrPanel.getGloves().addChangeHandler(handler);
    cdrPanel.getRing1().addChangeHandler(handler);
    cdrPanel.getRing2().addChangeHandler(handler);
    cdrPanel.getBelt().addChangeHandler(handler);
    cdrPanel.getWeapon().addChangeHandler(handler);
    cdrPanel.getQuiver().addChangeHandler(handler);
    itemPanel.addChangeHandler(handler);

    paragonPanel.getParagonRCR().addChangeHandler(handler2);
    rcrPanel.getShoulders().addChangeHandler(handler2);
    rcrPanel.getAmulet().addChangeHandler(handler2);
    rcrPanel.getGloves().addChangeHandler(handler2);
    rcrPanel.getRing1().addChangeHandler(handler2);
    rcrPanel.getRing2().addChangeHandler(handler2);
    rcrPanel.getBelt().addChangeHandler(handler2);
    rcrPanel.getWeapon().addChangeHandler(handler2);
    rcrPanel.getQuiver().addChangeHandler(handler2);
    itemPanel.addChangeHandler(handler2);

    Button exportButton = new Button("New button");
    exportButton.setText("Export to Excel...");
    horizontalPanel_19.add(exportButton);

    exportButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {
            Service.getInstance().checkVersion(null);
            exportExcel();
        }

    });

    Button statsButton = new Button("Statistics...");

    firstTimeStats = true;

    statsButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            Service.getInstance().checkVersion(null);

            if (stats == null) {
                stats = new StatsPanel();

                stats.setActionListener(new StatsPanel.ActionListener() {

                    @Override
                    public void importEntry(DpsTableEntry entry) {
                        MainPanel.this.importEntry(entry);
                    }

                    @Override
                    public void closePanel() {
                        if (statsDialog != null) {
                            statsDialog.hide();
                            statsDialog = null;
                        }
                    }

                    @Override
                    public Build getBuild() {
                        return MainPanel.this.getBuild();
                    }

                    @Override
                    public void setBuild(Build build) {
                        MainPanel.this.setBuild(build);

                    }
                });

            }

            statsDialog = ApplicationPanel.showDialogBox("Statistics", stats, ApplicationPanel.OK, null);

            if (firstTimeStats) {
                firstTimeStats = false;
                stats.updateStats();
            }
        }
    });

    Button aboutButton = new Button("New button");
    aboutButton.setText("About...");
    horizontalPanel_19.add(aboutButton);

    aboutButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            Service.getInstance().checkVersion(null);

            if (about == null)
                about = new AboutDialog();

            ApplicationPanel.showDialogBox("About", about, ApplicationPanel.OK, null);
        }
    });

    legendButton.addClickHandler(new ClickHandler() {

        @Override
        public void onClick(ClickEvent event) {

            Service.getInstance().checkVersion(null);

            if (legend == null)
                legend = new Legend();

            ApplicationPanel.showDialogBox("Legend", legend, ApplicationPanel.OK, null);
        }
    });

    for (Realm r : Realm.values()) {
        realms.addItem(r.getDisplayName(), r.name());
    }

    Service.getInstance().addNewsHandler(new NewsHandler() {

        @Override
        public void newsChanged(List<NewsItem> news) {
            setNews(news);
        }
    });

    skills.addSkillsChangedListener(new SkillsChangedListener() {

        @Override
        public void skillsChanged(Map<ActiveSkill, Rune> skills) {
            cdrPanel.setSkills(skills, itemPanel.getItems(), itemPanel.getSetCounts());
        }
    });

    itemPanel.addItemsChangedListener(new ItemsChangedListener() {

        @Override
        public void itemsChanged(Map<Slot, ItemHolder> items) {
            cdrPanel.setSkills(skills.getSkills(), items, itemPanel.getSetCounts());
        }

        @Override
        public void setCountsChanged(Map<String, Integer> sets) {
            cdrPanel.setSkills(skills.getSkills(), itemPanel.getItems(), sets);
        }
    });
}

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

License:Open Source License

protected void setNews(List<NewsItem> news) {
    newsPanel.clear();/* w w  w.  j ava2 s  .  c  o  m*/

    if (!news.isEmpty()) {
        newsPanel.setWidth("100%");
        CaptionPanel border = new CaptionPanel("News");
        border.setWidth("100%");
        newsPanel.add(border);

        VerticalPanel panel = new VerticalPanel();
        border.setContentWidget(panel);

        for (NewsItem n : news) {
            HorizontalPanel row = new HorizontalPanel();
            HTML label = new HTML(n.getText());
            label.addStyleName("boldText");
            row.add(label);
            panel.add(row);
        }
    }

}

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

License:Open Source License

private void updateOutput() {

    Label ns = new Label("" + data.getNumSentries());
    ns.addStyleName("boldText");
    outputHeader.setWidget(2, 5, ns);/*from   ww w  .j  a  va 2  s . c  o  m*/

    while (damageLog.getRowCount() > 1) {
        damageLog.removeRow(1);
    }

    for (int i = damageLog.getRowCount(); i > 1; --i) {
        damageLog.removeRow(i - 1);
    }

    for (int i = statTable.getRowCount(); i > 1; --i) {
        statTable.removeRow(i - 1);
    }

    for (int i = shooterSummary.getRowCount(); i > 1; --i) {
        shooterSummary.removeRow(i - 1);
    }

    this.captionPanelDamageLog.setCaptionHTML("Damage Log (" + damage.duration + " seconds)");

    for (int row = 0; row < damage.damages.length; row++) {
        if ((row % 2) == 0)
            damageLog.getRowFormatter().addStyleName(row + 1, "oddRow");
        else
            damageLog.getRowFormatter().addStyleName(row + 1, "evenRow");

        Damage d = damage.damages[row];

        int col = 0;

        Label timeLabel = new Label(Util.format(Math.round(d.time * 100.0) / 100.0), false);
        timeLabel.addStyleName("dpsCol");
        damageLog.setWidget(row + 1, col++, timeLabel);

        Label sLabel = new Label(d.shooter);
        sLabel.setWordWrap(false);
        damageLog.setWidget(row + 1, col++, sLabel);

        if (d.source != null) {
            ActiveSkill skill = d.source.skill;
            Anchor a = new Anchor(d.source.getName());
            a.setTarget("_blank");
            a.setWordWrap(false);
            String url = d.source.getUrl();
            a.setHref(url);

            damageLog.setWidget(row + 1, col++, a);

            if (skill != null) {
                Anchor b = new Anchor(d.source.rune.getLongName());
                b.setTarget("_blank");
                b.setWordWrap(false);

                if (d.source.skill == ActiveSkill.CR)
                    url = ActiveSkill.RoV.getUrl();

                if (d.source.rune != Rune.None)
                    url += ("#" + d.source.rune.getSlug() + "+");

                b.setHref(url);

                damageLog.setWidget(row + 1, col++, b);
            } else {
                Label b = new Label("N/A");
                damageLog.setWidget(row + 1, col++, b);
            }
        } else if (d.shooter.equals("Preparation")) {
            Anchor b = new Anchor("Preparation");
            b.setTarget("_blank");
            b.setWordWrap(false);
            b.setHref("http://us.battle.net/d3/en/class/demon-hunter/active/preparation");
            damageLog.setWidget(row + 1, col++, b);

            Anchor b2 = new Anchor("Punishment");
            b2.setTarget("_blank");
            b2.setWordWrap(false);
            b2.setHref("http://us.battle.net/d3/en/class/demon-hunter/active/preparation#a+");
            damageLog.setWidget(row + 1, col++, b2);
        } else if (d.shooter.equals("Companion") && d.hatred != 0) {
            Anchor b = new Anchor("Companion");
            b.setTarget("_blank");
            b.setWordWrap(false);
            b.setHref("http://us.battle.net/d3/en/class/demon-hunter/active/companion");
            damageLog.setWidget(row + 1, col++, b);

            Anchor b2 = new Anchor("Bat");
            b2.setTarget("_blank");
            b2.setWordWrap(false);
            b2.setHref("http://us.battle.net/d3/en/class/demon-hunter/active/companion#d+");
            damageLog.setWidget(row + 1, col++, b2);
        } else if (d.shooter.equals("MFD") && d.hatred != 0) {
            Anchor b = new Anchor("MfD");
            b.setTarget("_blank");
            b.setWordWrap(false);
            b.setHref("http://us.battle.net/d3/en/class/demon-hunter/active/marked-for-death");
            damageLog.setWidget(row + 1, col++, b);

            Anchor b2 = new Anchor("Mortal Enemy");
            b2.setTarget("_blank");
            b2.setWordWrap(false);
            b2.setHref("http://us.battle.net/d3/en/class/demon-hunter/active/marked-for-death#d+");
            damageLog.setWidget(row + 1, col++, b2);
        } else {
            col += 2;
        }

        if (d.type != null)
            damageLog.setWidget(row + 1, col++, new Label(d.type.name(), false));
        else
            col++;

        if (d.hatred != 0) {
            Label hatredLabel = new Label(
                    ((d.hatred > 0) ? "+" : "") + Util.format(Math.round(d.hatred * 10.0) / 10.0), false);
            hatredLabel.addStyleName("dpsCol");
            damageLog.setWidget(row + 1, col++, hatredLabel);
        } else {
            col++;
        }

        Label hatredLabel2 = new Label(Util.format(Math.round(d.currentHatred * 10.0) / 10.0), false);
        hatredLabel2.addStyleName("dpsCol");
        damageLog.setWidget(row + 1, col++, hatredLabel2);

        if (d.disc != 0) {
            Label discLabel = new Label(
                    ((d.disc > 0) ? "+" : "") + Util.format(Math.round(d.disc * 10.0) / 10.0), false);
            discLabel.addStyleName("dpsCol");
            damageLog.setWidget(row + 1, col++, discLabel);
        } else {
            col++;
        }

        Label discLabel2 = new Label(Util.format(Math.round(d.currentDisc * 10.0) / 10.0), false);
        discLabel2.addStyleName("dpsCol");
        damageLog.setWidget(row + 1, col++, discLabel2);

        if (d.damage > 0) {
            Label totalLabel = new Label(Util.format(Math.round(d.damage)), false);
            totalLabel.addStyleName("dpsCol");
            damageLog.setWidget(row + 1, col++, totalLabel);

            Label dpsLabel = new Label(Util.format(Math.round((d.targetHp))), false);
            dpsLabel.addStyleName("dpsCol");
            damageLog.setWidget(row + 1, col++, dpsLabel);
            double pct = Math.round(d.targetHpPercent * 1000.0) / 10.0;
            Label pctLabel = new Label(Util.format(pct) + "%", false);
            pctLabel.addStyleName("dpsCol");
            damageLog.setWidget(row + 1, col++, pctLabel);
        } else {
            col += 3;
        }

        if (d.target != null) {
            damageLog.setWidget(row + 1, col++, new Label(d.target.toString(), false));
        } else {
            damageLog.setWidget(row + 1, col++, new Label("", false));
        }

        if (d.note != null) {
            damageLog.setWidget(row + 1, col++, new Label(d.note, false));
        } else {
            damageLog.setWidget(row + 1, col++, new Label("", false));
        }

        if (d.log != null) {
            Label log = new Label(d.log);
            log.setWordWrap(false);
            damageLog.setWidget(row + 1, col++, log);
        } else {
            damageLog.setWidget(row + 1, col++, new Label("", false));
        }

    }

    for (int i = summary.getRowCount(); i > 1; --i) {
        summary.removeRow(i - 1);
    }

    int row = 1;
    for (Map.Entry<DamageType, DamageHolder> e : types.entrySet()) {
        if ((row % 2) == 0)
            summary.getRowFormatter().addStyleName(row, "evenRow");
        else
            summary.getRowFormatter().addStyleName(row, "oddRow");

        summary.setWidget(row, 0, new Label(e.getKey().name(), false));

        int attacks = e.getValue().attacks;
        double d = e.getValue().damage;
        double da = Math.round((d / attacks));

        Label label1 = new Label(String.valueOf(attacks), false);
        label1.addStyleName("dpsCol");
        summary.setWidget(row, 1, label1);

        Label label2 = new Label(Util.format(da), false);
        label2.addStyleName("dpsCol");
        summary.setWidget(row, 2, label2);

        Label damageLabel = new Label(Util.format(Math.round(d)), false);
        damageLabel.addStyleName("dpsCol");
        summary.setWidget(row, 3, damageLabel);

        Label dpsLabel = new Label(Util.format(Math.round((d) / damage.duration)), false);
        dpsLabel.addStyleName("dpsCol");
        summary.setWidget(row, 4, dpsLabel);

        double pct = Math.round((d / total) * 10000.0) / 100.0;
        Label pctLabel = new Label(String.valueOf(pct) + "%", false);
        pctLabel.addStyleName("dpsCol");
        summary.setWidget(row, 5, pctLabel);
        row++;
    }

    for (int i = skillSummary.getRowCount(); i > 1; --i) {
        skillSummary.removeRow(i - 1);
    }

    row = 1;
    for (Map.Entry<DamageSource, DamageHolder> e : skillDamages.entrySet()) {
        if ((row % 2) == 0)
            skillSummary.getRowFormatter().addStyleName(row, "evenRow");
        else
            skillSummary.getRowFormatter().addStyleName(row, "oddRow");

        DamageSource source = e.getKey();

        Anchor a = new Anchor(source.getName());
        a.setTarget("_blank");
        a.setWordWrap(false);
        String url = source.getUrl();
        a.setHref(url);
        skillSummary.setWidget(row, 0, a);

        int attacks = e.getValue().attacks;
        double d = e.getValue().damage;
        double da = Math.round((d / attacks));

        Label label1 = new Label(String.valueOf(attacks), false);
        label1.addStyleName("dpsCol");
        skillSummary.setWidget(row, 1, label1);

        Label label2 = new Label(Util.format(da), false);
        label2.addStyleName("dpsCol");
        skillSummary.setWidget(row, 2, label2);

        Label damageLabel = new Label(Util.format(Math.round(d)), false);
        damageLabel.addStyleName("dpsCol");
        skillSummary.setWidget(row, 3, damageLabel);

        Label dpsLabel = new Label(Util.format(Math.round((d) / damage.duration)), false);
        dpsLabel.addStyleName("dpsCol");
        skillSummary.setWidget(row, 4, dpsLabel);

        double pct = Math.round((d / total) * 10000.0) / 100.0;
        Label pctLabel = new Label(String.valueOf(pct) + "%", false);
        pctLabel.addStyleName("dpsCol");
        skillSummary.setWidget(row, 5, pctLabel);
        row++;
    }

    row = 1;
    for (Map.Entry<String, DamageHolder> e : shooterDamages.entrySet()) {
        if ((row % 2) == 0)
            shooterSummary.getRowFormatter().addStyleName(row, "evenRow");
        else
            shooterSummary.getRowFormatter().addStyleName(row, "oddRow");

        Label a = new Label(e.getKey());
        a.setWordWrap(false);
        shooterSummary.setWidget(row, 0, a);

        int attacks = e.getValue().attacks;
        double d = e.getValue().damage;
        double da = Math.round((d / attacks));

        Label label1 = new Label(String.valueOf(attacks), false);
        label1.addStyleName("dpsCol");
        shooterSummary.setWidget(row, 1, label1);

        Label label2 = new Label(Util.format(da), false);
        label2.addStyleName("dpsCol");
        shooterSummary.setWidget(row, 2, label2);

        Label damageLabel = new Label(Util.format(Math.round(d)), false);
        damageLabel.addStyleName("dpsCol");
        shooterSummary.setWidget(row, 3, damageLabel);

        Label dpsLabel = new Label(Util.format(Math.round((d) / damage.duration)), false);
        dpsLabel.addStyleName("dpsCol");
        shooterSummary.setWidget(row, 4, dpsLabel);

        double pct = Math.round((d / total) * 10000.0) / 100.0;
        Label pctLabel = new Label(String.valueOf(pct) + "%", false);
        pctLabel.addStyleName("dpsCol");
        shooterSummary.setWidget(row, 5, pctLabel);
        row++;
    }

    double dps = (damage.duration > 0) ? Math.round(total / damage.duration) : total;

    weaponDamage.setText(Util.format(Math.round(data.getWeaponDamage() * 100.0) / 100.0));

    if (data.getOffHand_weaponType() != null) {
        offHand_weaponDamage.setText(Util.format(Math.round(data.getOffHand_weaponDamage() * 100.0) / 100.0));
        double dwDamage = (data.getWeaponDamage() + data.getOffHand_weaponDamage()) / 2.0;
        dw_weaponDamage.setText(Util.format(Math.round(dwDamage * 100.0) / 100.0) + " sec");
    } else {
        offHand_weaponDamage.setText("N/A");
        dw_weaponDamage.setText("N/A");

    }

    row = 1;

    this.dps.setText(Util.format(Math.round(dps)));
    this.totalDamage.setText(Util.format(Math.round(total)));
    this.eliteDamage.setText(Math.round(data.getTotalEliteDamage() * 100.0) + "%");
    this.timeElapsed.setText(Util.format(Math.round(damage.duration * 100.0) / 100.0) + " secs");

    row = 1;

    final CharacterData savedData = data.copy();

    final double baseline = total;
    final double duration = damage.duration;

    for (Stat stat : Stat.values()) {

        final StatAdapter adapter = stat.getAdapter();

        if (adapter.test(data, types.keySet())) {

            if ((row % 2) == 0)
                statTable.getRowFormatter().addStyleName(row, "evenRow");
            else
                statTable.getRowFormatter().addStyleName(row, "oddRow");

            HorizontalPanel panel = new HorizontalPanel();
            panel.setVerticalAlignment(HasVerticalAlignment.ALIGN_MIDDLE);
            panel.setSpacing(0);

            panel.add(new Label("+", false));
            final DoubleSpinner spinner = new DoubleSpinner();
            double value = adapter.getDefaultValue();
            spinner.setMax(value * 100.0);
            spinner.setMin(value * -100.0);

            final String field = "Stat." + stat.getLabel();

            try {
                value = Double.parseDouble(this.getFieldValue(field, String.valueOf(value)));
            } catch (Exception e) {
                saveField(field, String.valueOf(value));
            }

            spinner.setValue(value);
            spinner.setVisibleLength(4);

            panel.add(spinner);

            String label = stat.getLabel();

            int col = 0;
            Label l1 = new Label(label);
            l1.setWordWrap(false);
            panel.add(l1);

            statTable.setWidget(row, col++, panel);

            final Label l2 = new Label("");
            l2.addStyleName("dpsCol");
            statTable.setWidget(row, col++, l2);

            final Label l2a = new Label("");
            l2a.addStyleName("dpsCol");
            statTable.setWidget(row, col++, l2a);

            final Label l2b = new Label("");
            l2b.addStyleName("dpsCol");
            statTable.setWidget(row, col++, l2b);

            final Label l3 = new Label("");
            l3.addStyleName("dpsCol");
            statTable.setWidget(row, col++, l3);

            final Label l4 = new Label("");
            l4.addStyleName("dpsCol");
            statTable.setWidget(row, col++, l4);

            updateStatTable(adapter, spinner, savedData, row, baseline, duration);

            final int r = row;

            spinner.addChangeHandler(new ChangeHandler() {

                @Override
                public void onChange(ChangeEvent event) {
                    saveField(field, String.valueOf(spinner.getValue()));
                    updateStatTable(adapter, spinner, savedData, r, baseline, duration);
                }
            });

            row++;
        }
    }
}