Search in sources :

Example 6 with CraftingLevel

use of delta.games.lotro.lore.crafting.CraftingLevel in project lotro-companion by dmorcellet.

the class CraftingHistoryChartController method updateData.

/**
 * Update graph data.
 */
public void updateData() {
    _data.removeAllSeries();
    Long lastItemDate = _stats.getValidityDate();
    XYSeries proficiencySeries = new XYSeries("Proficiency");
    CraftingLevel maxLevel = CraftingLevel.getMaximumLevel();
    int maxTier = maxLevel.getTier();
    for (int i = 0; i <= maxTier; i++) {
        long date = _stats.getLevelStatus(i).getProficiency().getCompletionDate();
        if (date != 0) {
            proficiencySeries.add(date, i);
        }
    }
    XYSeries masterySeries = new XYSeries("Mastery");
    for (int i = 0; i <= maxTier; i++) {
        long date = _stats.getLevelStatus(i).getMastery().getCompletionDate();
        if (date != 0) {
            masterySeries.add(date, i);
        }
    }
    // Set last point
    if (lastItemDate != null) {
        CraftingLevel currentProficiency = _stats.getProficiencyLevel();
        proficiencySeries.add(lastItemDate.longValue(), currentProficiency.getTier());
        CraftingLevel currentMastery = _stats.getMasteryLevel();
        masterySeries.add(lastItemDate.longValue(), currentMastery.getTier());
    }
    _data.addSeries(masterySeries);
    _data.addSeries(proficiencySeries);
}
Also used : XYSeries(org.jfree.data.xy.XYSeries) CraftingLevel(delta.games.lotro.lore.crafting.CraftingLevel) Paint(java.awt.Paint)

Example 7 with CraftingLevel

use of delta.games.lotro.lore.crafting.CraftingLevel in project lotro-companion by dmorcellet.

the class ProfessionStatusEditionPanelController method buildStatusEditionPanel.

private JPanel buildStatusEditionPanel() {
    JPanel panel = GuiFactory.buildPanel(new GridBagLayout());
    // Header row 1
    GridBagConstraints c = new GridBagConstraints(0, 0, 1, 2, 0.0, 0.0, GridBagConstraints.CENTER, GridBagConstraints.NONE, new Insets(5, 5, 5, 5), 0, 0);
    JLabel tier = GuiFactory.buildLabel("Tier");
    panel.add(tier, c);
    c.gridx = 1;
    c.gridwidth = 3;
    c.gridheight = 1;
    JLabel proficiency = GuiFactory.buildLabel("Proficiency");
    panel.add(proficiency, c);
    c.gridx = 4;
    c.gridwidth = 3;
    c.gridheight = 1;
    JLabel mastery = GuiFactory.buildLabel("Mastery");
    panel.add(mastery, c);
    // Header row 2
    c.gridx = 1;
    c.gridy = 1;
    c.gridwidth = 1;
    for (int i = 0; i < 2; i++) {
        panel.add(GuiFactory.buildLabel("Completed"), c);
        c.gridx++;
        panel.add(GuiFactory.buildLabel("XP"), c);
        c.gridx++;
        panel.add(GuiFactory.buildLabel("Completion date"), c);
        c.gridx++;
    }
    c.gridy++;
    ActionListener l = new ActionListener() {

        @Override
        public void actionPerformed(ActionEvent e) {
            handleCompletionChange(e.getSource());
        }
    };
    DateListener dateListener = new DateListener() {

        @Override
        public void dateChanged(DateEditionController controller, Long newDate) {
            long date = (newDate != null) ? newDate.longValue() : 0;
            handleDateChange(controller, date);
        }
    };
    // Data rows
    CraftingLevel[] levels = CraftingLevel.ALL_TIERS;
    for (CraftingLevel level : levels) {
        CraftingLevelStatus levelStatus = _status.getLevelStatus(level);
        c.gridx = 0;
        JLabel tierLabel = GuiFactory.buildLabel(level.toString());
        panel.add(tierLabel, c);
        c.gridx++;
        // Proficiency
        CraftingLevelTierStatus proficiencyStatus = levelStatus.getProficiency();
        CraftingLevelTierEditionGadgets proficiencyGadgets = new CraftingLevelTierEditionGadgets(proficiencyStatus);
        JCheckBox checkbox = proficiencyGadgets.getCompleted().getCheckbox();
        panel.add(checkbox, c);
        checkbox.addActionListener(l);
        c.gridx++;
        panel.add(proficiencyGadgets.getXp().getTextField(), c);
        c.gridx++;
        DateEditionController dateCompletion = proficiencyGadgets.getCompletionDate();
        dateCompletion.addListener(dateListener);
        panel.add(dateCompletion.getTextField(), c);
        c.gridx++;
        _proficiencyGadgets.add(proficiencyGadgets);
        // Mastery
        CraftingLevelTierStatus masteryStatus = levelStatus.getMastery();
        CraftingLevelTierEditionGadgets masteryGadgets = new CraftingLevelTierEditionGadgets(masteryStatus);
        checkbox = masteryGadgets.getCompleted().getCheckbox();
        panel.add(checkbox, c);
        checkbox.addActionListener(l);
        c.gridx++;
        panel.add(masteryGadgets.getXp().getTextField(), c);
        c.gridx++;
        dateCompletion = masteryGadgets.getCompletionDate();
        dateCompletion.addListener(dateListener);
        panel.add(dateCompletion.getTextField(), c);
        c.gridx++;
        _masteryGadgets.add(masteryGadgets);
        c.gridy++;
        if (level == CraftingLevel.BEGINNER) {
            proficiencyGadgets.getCompleted().setState(false);
            masteryGadgets.getCompleted().setState(false);
        }
    }
    return panel;
}
Also used : JPanel(javax.swing.JPanel) GridBagConstraints(java.awt.GridBagConstraints) Insets(java.awt.Insets) GridBagLayout(java.awt.GridBagLayout) ActionEvent(java.awt.event.ActionEvent) JLabel(javax.swing.JLabel) JCheckBox(javax.swing.JCheckBox) CraftingLevelTierStatus(delta.games.lotro.character.crafting.CraftingLevelTierStatus) ActionListener(java.awt.event.ActionListener) DateListener(delta.common.ui.swing.text.dates.DateListener) DateEditionController(delta.common.ui.swing.text.dates.DateEditionController) CraftingLevel(delta.games.lotro.lore.crafting.CraftingLevel) CraftingLevelStatus(delta.games.lotro.character.crafting.CraftingLevelStatus)

Example 8 with CraftingLevel

use of delta.games.lotro.lore.crafting.CraftingLevel in project lotro-companion by dmorcellet.

the class ProfessionStatusEditionPanelController method handleDateChange.

private void handleDateChange(DateEditionController source, long completionDate) {
    CraftingLevel[] levels = CraftingLevel.ALL_TIERS;
    int index = 0;
    for (CraftingLevel level : levels) {
        CraftingLevelTierEditionGadgets proficiency = _proficiencyGadgets.get(index);
        if (source == proficiency.getCompletionDate()) {
            _status.getLevelStatus(level).getProficiency().setCompletionDate(completionDate);
        }
        CraftingLevelTierEditionGadgets mastery = _masteryGadgets.get(index);
        if (source == mastery.getCompletionDate()) {
            _status.getLevelStatus(level).getMastery().setCompletionDate(completionDate);
        }
        index++;
    }
    Long validityDate = _status.getValidityDate();
    if (validityDate == null) {
        updateValidityDate();
    }
    triggerChartUpdateTimer();
}
Also used : CraftingLevel(delta.games.lotro.lore.crafting.CraftingLevel)

Aggregations

CraftingLevel (delta.games.lotro.lore.crafting.CraftingLevel)8 JPanel (javax.swing.JPanel)3 GridBagConstraints (java.awt.GridBagConstraints)2 GridBagLayout (java.awt.GridBagLayout)2 Insets (java.awt.Insets)2 Paint (java.awt.Paint)2 JLabel (javax.swing.JLabel)2 DefaultTableCellRenderer (javax.swing.table.DefaultTableCellRenderer)2 TableCellRenderer (javax.swing.table.TableCellRenderer)2 CellDataProvider (delta.common.ui.swing.tables.CellDataProvider)1 TableColumnController (delta.common.ui.swing.tables.TableColumnController)1 DateEditionController (delta.common.ui.swing.text.dates.DateEditionController)1 DateListener (delta.common.ui.swing.text.dates.DateListener)1 CraftingLevelStatus (delta.games.lotro.character.crafting.CraftingLevelStatus)1 CraftingLevelTierStatus (delta.games.lotro.character.crafting.CraftingLevelTierStatus)1 ProfessionComparator (delta.games.lotro.lore.crafting.ProfessionComparator)1 FactionLevelComparator (delta.games.lotro.lore.reputation.FactionLevelComparator)1 Color (java.awt.Color)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1