//# 0 errors, 201 messages
//#
/*
    //#WizardControlPanel.java:1:1: class: com.dmdirc.installer.ui.WizardControlPanel
    //#WizardControlPanel.java:1:1: method: com.dmdirc.installer.ui.WizardControlPanel.com.dmdirc.installer.ui.WizardControlPanel__static_init
 * 
 * Copyright (c) 2006-2008 Chris Smith, Shane Mc Cormack, Gregory Holmes
 * 
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 * 
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 * 
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */

package com.dmdirc.installer.ui;

import com.dmdirc.installer.ui.EtchedLineBorder.BorderSide;
import java.awt.Dimension;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.border.EtchedBorder;

/**
 * Simple Panel representing the control buttons for a wizard.
 */
public class WizardControlPanel extends JPanel {

    private static final long serialVersionUID = 7903362315297158222L;
    private final JButton prev;
    private final JButton next;
    private final JLabel progress;
    private int total;
    private int step;

    /**
     * Instantiates a new wizard control panel.
     */
    public WizardControlPanel() {
        this(0);
    //#WizardControlPanel.java:51: method: void com.dmdirc.installer.ui.WizardControlPanel.com.dmdirc.installer.ui.WizardControlPanel()
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): " of "._tainted
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): "Step "._tainted
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): __Descendant_Table[com/dmdirc/installer/ui/WizardControlPanel]
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): __Descendant_Table[others]
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): __Dispatch_Table.updateProgressLabel()V
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): com/dmdirc/installer/ui/EtchedLineBorder$BorderSide.TOP
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): this
    //#input(void com.dmdirc.installer.ui.WizardControlPanel()): this.__Tag
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): new JButton(WizardControlPanel#1) num objects
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): new JButton(WizardControlPanel#2) num objects
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): new JLabel(WizardControlPanel#3) num objects
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): this.__Tag
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): this.next
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): this.prev
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): this.progress
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): this.step
    //#output(void com.dmdirc.installer.ui.WizardControlPanel()): this.total
    //#new obj(void com.dmdirc.installer.ui.WizardControlPanel()): new JButton(WizardControlPanel#1)
    //#new obj(void com.dmdirc.installer.ui.WizardControlPanel()): new JButton(WizardControlPanel#2)
    //#new obj(void com.dmdirc.installer.ui.WizardControlPanel()): new JLabel(WizardControlPanel#3)
    //#pre[1] (void com.dmdirc.installer.ui.WizardControlPanel()): this.__Tag == com/dmdirc/installer/ui/WizardControlPanel
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): this.__Tag == com/dmdirc/installer/ui/WizardControlPanel
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): this.next == &new JButton(WizardControlPanel#2)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): this.prev == &new JButton(WizardControlPanel#1)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): this.progress == &new JLabel(WizardControlPanel#3)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): init'ed(this.step)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): this.total == 0
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): new JButton(WizardControlPanel#1) num objects == 1
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): new JButton(WizardControlPanel#2) num objects == 1
    //#post(void com.dmdirc.installer.ui.WizardControlPanel()): new JLabel(WizardControlPanel#3) num objects == 1
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.JPanel
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.JButton
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.JLabel
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.JButton:getFont
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:java.awt.Font:getSize
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:java.awt.Dimension
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.JButton:setPreferredSize
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.border.EtchedBorder
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:com.dmdirc.installer.ui.WizardControlPanel:setBorder
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.BoxLayout
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:com.dmdirc.installer.ui.WizardControlPanel:setLayout
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:com.dmdirc.installer.ui.WizardControlPanel:add
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.Box:createHorizontalGlue
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel()): Effects-of-calling:javax.swing.Box:createHorizontalStrut
    }
    //#WizardControlPanel.java:52: end of method: void com.dmdirc.installer.ui.WizardControlPanel.com.dmdirc.installer.ui.WizardControlPanel()

    /**
     * Instantiates a new wizard control panel using the specified number of
     * steps.
     * 
     * @param total Total number of steps
     */
    public WizardControlPanel(final int total) {
    //#WizardControlPanel.java:60: method: void com.dmdirc.installer.ui.WizardControlPanel.com.dmdirc.installer.ui.WizardControlPanel(int)
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): " of "._tainted
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): "Step "._tainted
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): __Descendant_Table[com/dmdirc/installer/ui/WizardControlPanel]
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): __Descendant_Table[others]
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): __Dispatch_Table.updateProgressLabel()V
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): com/dmdirc/installer/ui/EtchedLineBorder$BorderSide.TOP
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): this
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.__Tag
    //#input(void com.dmdirc.installer.ui.WizardControlPanel(int)): total
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JButton(WizardControlPanel#1) num objects
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JButton(WizardControlPanel#2) num objects
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JLabel(WizardControlPanel#3) num objects
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.__Tag
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.next
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.prev
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.progress
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.step
    //#output(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.total
    //#new obj(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JButton(WizardControlPanel#1)
    //#new obj(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JButton(WizardControlPanel#2)
    //#new obj(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JLabel(WizardControlPanel#3)
    //#pre[1] (void com.dmdirc.installer.ui.WizardControlPanel(int)): this.__Tag == com/dmdirc/installer/ui/WizardControlPanel
    //#presumption(void com.dmdirc.installer.ui.WizardControlPanel(int)): java.awt.Font:getSize(...)@69 <= 4_294_967_285
    //#presumption(void com.dmdirc.installer.ui.WizardControlPanel(int)): java.awt.Font:getSize(...)@70 <= 4_294_967_285
    //#presumption(void com.dmdirc.installer.ui.WizardControlPanel(int)): javax.swing.JButton:getFont(...)@69 != null
    //#presumption(void com.dmdirc.installer.ui.WizardControlPanel(int)): javax.swing.JButton:getFont(...)@70 != null
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.__Tag == com/dmdirc/installer/ui/WizardControlPanel
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.next == &new JButton(WizardControlPanel#2)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.prev == &new JButton(WizardControlPanel#1)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.progress == &new JLabel(WizardControlPanel#3)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): init'ed(this.step)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): this.total == total
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): init'ed(this.total)
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JButton(WizardControlPanel#1) num objects == 1
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JButton(WizardControlPanel#2) num objects == 1
    //#post(void com.dmdirc.installer.ui.WizardControlPanel(int)): new JLabel(WizardControlPanel#3) num objects == 1
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel(int)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel(int)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel(int)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel(int)): Effects-of-calling:javax.swing.JLabel:setText
    //#unanalyzed(void com.dmdirc.installer.ui.WizardControlPanel(int)): Effects-of-calling:javax.swing.border.EtchedBorder
        this.total = total;
        this.step = 0;
        
        prev = new JButton("\u00AB Previous");
        next = new JButton("Next \u00BB");
        progress = new JLabel();
        updateProgressLabel();

        prev.setPreferredSize(new Dimension(100, prev.getFont().getSize() + 2 * InstallerDialog.SMALL_GAP));
        next.setPreferredSize(new Dimension(100, next.getFont().getSize() + 2 * InstallerDialog.SMALL_GAP));

        setBorder(new EtchedLineBorder(EtchedBorder.LOWERED, BorderSide.TOP));
    //#WizardControlPanel.java:72: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.installer.ui.WizardControlPanel:setBorder(Border)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.installer.ui.WizardControlPanel
    //#    method: void com.dmdirc.installer.ui.WizardControlPanel(int)
    //#    unanalyzed callee: void com.dmdirc.installer.ui.WizardControlPanel:setBorder(Border)
        setLayout(new BoxLayout(this, BoxLayout.LINE_AXIS));
    //#WizardControlPanel.java:73: Warning: method not available - call not analyzed
    //#    call on void com.dmdirc.installer.ui.WizardControlPanel:setLayout(LayoutManager)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.installer.ui.WizardControlPanel
    //#    method: void com.dmdirc.installer.ui.WizardControlPanel(int)
    //#    unanalyzed callee: void com.dmdirc.installer.ui.WizardControlPanel:setLayout(LayoutManager)
        add(progress);
    //#WizardControlPanel.java:74: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.installer.ui.WizardControlPanel
    //#    method: void com.dmdirc.installer.ui.WizardControlPanel(int)
    //#    unanalyzed callee: Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
        add(Box.createHorizontalGlue());
    //#WizardControlPanel.java:75: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.installer.ui.WizardControlPanel
    //#    method: void com.dmdirc.installer.ui.WizardControlPanel(int)
    //#    unanalyzed callee: Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
        add(prev);
    //#WizardControlPanel.java:76: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.installer.ui.WizardControlPanel
    //#    method: void com.dmdirc.installer.ui.WizardControlPanel(int)
    //#    unanalyzed callee: Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
        add(Box.createHorizontalStrut(InstallerDialog.SMALL_GAP));
    //#WizardControlPanel.java:77: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.installer.ui.WizardControlPanel
    //#    method: void com.dmdirc.installer.ui.WizardControlPanel(int)
    //#    unanalyzed callee: Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
        add(next);
    //#WizardControlPanel.java:78: Warning: method not available - call not analyzed
    //#    call on Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
    //#    severity: INFORMATIONAL
    //#    class: com.dmdirc.installer.ui.WizardControlPanel
    //#    method: void com.dmdirc.installer.ui.WizardControlPanel(int)
    //#    unanalyzed callee: Component com.dmdirc.installer.ui.WizardControlPanel:add(Component)
    }
    //#WizardControlPanel.java:79: end of method: void com.dmdirc.installer.ui.WizardControlPanel.com.dmdirc.installer.ui.WizardControlPanel(int)

    /**
     * Returns the previous button.
     *
     * @return Previous button
     */
    public JButton getPrevButton() {
        return prev;
    //#WizardControlPanel.java:87: method: JButton com.dmdirc.installer.ui.WizardControlPanel.getPrevButton()
    //#input(JButton getPrevButton()): this
    //#input(JButton getPrevButton()): this.prev
    //#output(JButton getPrevButton()): return_value
    //#post(JButton getPrevButton()): return_value == this.prev
    //#post(JButton getPrevButton()): init'ed(return_value)
    //#WizardControlPanel.java:87: end of method: JButton com.dmdirc.installer.ui.WizardControlPanel.getPrevButton()
    }

    /**
     * Returns the next button.
     * 
     * @return Next button
     */
    public JButton getNextButton() {
        return next;
    //#WizardControlPanel.java:96: method: JButton com.dmdirc.installer.ui.WizardControlPanel.getNextButton()
    //#input(JButton getNextButton()): this
    //#input(JButton getNextButton()): this.next
    //#output(JButton getNextButton()): return_value
    //#post(JButton getNextButton()): return_value == this.next
    //#post(JButton getNextButton()): init'ed(return_value)
    //#WizardControlPanel.java:96: end of method: JButton com.dmdirc.installer.ui.WizardControlPanel.getNextButton()
    }

    /**
     * Returns the progress label.
     * 
     * @return Progress Label
     */
    public JLabel getProgressLabel() {
        return progress;
    //#WizardControlPanel.java:105: method: JLabel com.dmdirc.installer.ui.WizardControlPanel.getProgressLabel()
    //#input(JLabel getProgressLabel()): this
    //#input(JLabel getProgressLabel()): this.progress
    //#output(JLabel getProgressLabel()): return_value
    //#post(JLabel getProgressLabel()): return_value == this.progress
    //#post(JLabel getProgressLabel()): init'ed(return_value)
    //#WizardControlPanel.java:105: end of method: JLabel com.dmdirc.installer.ui.WizardControlPanel.getProgressLabel()
    }

    /**
     * Updates the progress label.
     */
    public void updateProgressLabel() {
        progress.setText("Step " + step + " of " + total);
    //#WizardControlPanel.java:112: method: void com.dmdirc.installer.ui.WizardControlPanel.updateProgressLabel()
    //#input(void updateProgressLabel()): " of "._tainted
    //#input(void updateProgressLabel()): "Step "._tainted
    //#input(void updateProgressLabel()): this
    //#input(void updateProgressLabel()): this.progress
    //#input(void updateProgressLabel()): this.step
    //#input(void updateProgressLabel()): this.total
    //#pre[2] (void updateProgressLabel()): this.progress != null
    //#pre[3] (void updateProgressLabel()): init'ed(this.step)
    //#pre[4] (void updateProgressLabel()): init'ed(this.total)
    }
    //#WizardControlPanel.java:113: end of method: void com.dmdirc.installer.ui.WizardControlPanel.updateProgressLabel()

    /**
     * Sets the new total number of steps.
     * 
     * @param total New total number of steps
     */
    public void setTotal(final int total) {
        this.total = total;
    //#WizardControlPanel.java:121: method: void com.dmdirc.installer.ui.WizardControlPanel.setTotal(int)
    //#input(void setTotal(int)): " of "._tainted
    //#input(void setTotal(int)): "Step "._tainted
    //#input(void setTotal(int)): __Descendant_Table[com/dmdirc/installer/ui/WizardControlPanel]
    //#input(void setTotal(int)): __Descendant_Table[others]
    //#input(void setTotal(int)): __Dispatch_Table.updateProgressLabel()V
    //#input(void setTotal(int)): this
    //#input(void setTotal(int)): this.__Tag
    //#input(void setTotal(int)): this.progress
    //#input(void setTotal(int)): this.step
    //#input(void setTotal(int)): total
    //#output(void setTotal(int)): this.total
    //#pre[2] (void setTotal(int)): this.__Tag == com/dmdirc/installer/ui/WizardControlPanel
    //#pre[3] (void setTotal(int)): this.progress != null
    //#pre[4] (void setTotal(int)): init'ed(this.step)
    //#post(void setTotal(int)): this.total == total
    //#post(void setTotal(int)): init'ed(this.total)
    //#unanalyzed(void setTotal(int)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void setTotal(int)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void setTotal(int)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void setTotal(int)): Effects-of-calling:javax.swing.JLabel:setText
        updateProgressLabel();
    }
    //#WizardControlPanel.java:123: end of method: void com.dmdirc.installer.ui.WizardControlPanel.setTotal(int)

    /**
     * Sets the current progress step.
     * 
     * @param step Progress step
     */
    public void setProgress(final int step) {
        this.step = step + 1;
    //#WizardControlPanel.java:131: method: void com.dmdirc.installer.ui.WizardControlPanel.setProgress(int)
    //#input(void setProgress(int)): " of "._tainted
    //#input(void setProgress(int)): "Step "._tainted
    //#input(void setProgress(int)): __Descendant_Table[com/dmdirc/installer/ui/WizardControlPanel]
    //#input(void setProgress(int)): __Descendant_Table[others]
    //#input(void setProgress(int)): __Dispatch_Table.updateProgressLabel()V
    //#input(void setProgress(int)): step
    //#input(void setProgress(int)): this
    //#input(void setProgress(int)): this.__Tag
    //#input(void setProgress(int)): this.next
    //#input(void setProgress(int)): this.prev
    //#input(void setProgress(int)): this.progress
    //#input(void setProgress(int)): this.total
    //#output(void setProgress(int)): this.step
    //#pre[3] (void setProgress(int)): step <= 4_294_967_294
    //#pre[9] (void setProgress(int)): this.__Tag == com/dmdirc/installer/ui/WizardControlPanel
    //#pre[12] (void setProgress(int)): this.progress != null
    //#pre[13] (void setProgress(int)): init'ed(this.total)
    //#pre[10] (void setProgress(int)): (soft) this.next != null
    //#pre[11] (void setProgress(int)): (soft) this.prev != null
    //#post(void setProgress(int)): this.step == step + 1
    //#post(void setProgress(int)): this.step >= -2_147_483_647
    //#unanalyzed(void setProgress(int)): Effects-of-calling:java.lang.StringBuilder
    //#unanalyzed(void setProgress(int)): Effects-of-calling:java.lang.StringBuilder:append
    //#unanalyzed(void setProgress(int)): Effects-of-calling:java.lang.StringBuilder:toString
    //#unanalyzed(void setProgress(int)): Effects-of-calling:javax.swing.JLabel:setText
    //#test_vector(void setProgress(int)): step: {-2_147_483_648..-1}, {0}, {1..4_294_967_294}
    //#test_vector(void setProgress(int)): this.total - step: {-2_147_483_647..0, 2..4_294_967_294}, {1}
        updateProgressLabel();
        if (step + 1 == total) {
            next.setText("Finish");
        } else if (step == 0) {
            prev.setEnabled(false);
        } else if (step > 0) {
            prev.setEnabled(true);
        } else {
            next.setText("Next \u00BB");
        }
    }
    //#WizardControlPanel.java:142: end of method: void com.dmdirc.installer.ui.WizardControlPanel.setProgress(int)
}
    //#output(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Descendant_Table[com/dmdirc/installer/ui/WizardControlPanel]
    //#output(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.getNextButton()Ljavax/swing/JButton;
    //#output(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.getPrevButton()Ljavax/swing/JButton;
    //#output(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.getProgressLabel()Ljavax/swing/JLabel;
    //#output(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.setProgress(I)V
    //#output(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.setTotal(I)V
    //#output(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.updateProgressLabel()V
    //#post(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Descendant_Table[com/dmdirc/installer/ui/WizardControlPanel] == &__Dispatch_Table
    //#post(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.getNextButton()Ljavax/swing/JButton; == &getNextButton
    //#post(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.getPrevButton()Ljavax/swing/JButton; == &getPrevButton
    //#post(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.getProgressLabel()Ljavax/swing/JLabel; == &getProgressLabel
    //#post(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.setProgress(I)V == &setProgress
    //#post(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.setTotal(I)V == &setTotal
    //#post(com.dmdirc.installer.ui.WizardControlPanel__static_init): __Dispatch_Table.updateProgressLabel()V == &updateProgressLabel
    //#WizardControlPanel.java:: end of method: com.dmdirc.installer.ui.WizardControlPanel.com.dmdirc.installer.ui.WizardControlPanel__static_init
    //#WizardControlPanel.java:: end of class: com.dmdirc.installer.ui.WizardControlPanel
