mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-19 20:28:00 +00:00
Oops, forgot to commit unversioned file.
This commit is contained in:
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -10977,6 +10977,7 @@ src/main/java/forge/view/swing/Main.java svneol=native#text/plain
|
|||||||
src/main/java/forge/view/swing/OldGuiNewGame.java svneol=native#text/plain
|
src/main/java/forge/view/swing/OldGuiNewGame.java svneol=native#text/plain
|
||||||
src/main/java/forge/view/swing/package-info.java svneol=native#text/plain
|
src/main/java/forge/view/swing/package-info.java svneol=native#text/plain
|
||||||
src/main/java/forge/view/toolbox/CardViewer.java -text
|
src/main/java/forge/view/toolbox/CardViewer.java -text
|
||||||
|
src/main/java/forge/view/toolbox/DeckLister.java -text
|
||||||
src/main/java/forge/view/toolbox/FButton.java -text
|
src/main/java/forge/view/toolbox/FButton.java -text
|
||||||
src/main/java/forge/view/toolbox/FOverlay.java -text
|
src/main/java/forge/view/toolbox/FOverlay.java -text
|
||||||
src/main/java/forge/view/toolbox/FPanel.java -text
|
src/main/java/forge/view/toolbox/FPanel.java -text
|
||||||
|
|||||||
222
src/main/java/forge/view/toolbox/DeckLister.java
Normal file
222
src/main/java/forge/view/toolbox/DeckLister.java
Normal file
@@ -0,0 +1,222 @@
|
|||||||
|
package forge.view.toolbox;
|
||||||
|
|
||||||
|
import java.awt.Color;
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.awt.event.MouseAdapter;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import javax.swing.ImageIcon;
|
||||||
|
import javax.swing.JButton;
|
||||||
|
import javax.swing.JLabel;
|
||||||
|
import javax.swing.JPanel;
|
||||||
|
import javax.swing.SwingConstants;
|
||||||
|
import javax.swing.border.MatteBorder;
|
||||||
|
|
||||||
|
import net.miginfocom.swing.MigLayout;
|
||||||
|
|
||||||
|
import forge.AllZone;
|
||||||
|
import forge.deck.Deck;
|
||||||
|
import forge.game.GameType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates deck list for selected decks for quick deleting, editing, and basic info.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@SuppressWarnings("serial")
|
||||||
|
public class DeckLister extends JPanel {
|
||||||
|
private ImageIcon icoDelete;
|
||||||
|
private ImageIcon icoDeleteOver;
|
||||||
|
private ImageIcon icoEdit;
|
||||||
|
private ImageIcon icoEditOver;
|
||||||
|
private FSkin skin;
|
||||||
|
private RowPanel previousSelection = null;
|
||||||
|
private List<RowPanel> rows;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates deck list for selected decks for quick deleting, editing, and basic info.
|
||||||
|
* "selectable" and "editable" assumed true.
|
||||||
|
*
|
||||||
|
* @param gt0   GameType
|
||||||
|
*/
|
||||||
|
public DeckLister(GameType gt0) {
|
||||||
|
this(gt0, true, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates deck list for selected decks for quick deleting, editing, and basic info.
|
||||||
|
* Set "selectable" and "editable" to show those buttons, or not.
|
||||||
|
*
|
||||||
|
* @param gt0   GameType
|
||||||
|
* @param deletable   boolean
|
||||||
|
* @param editable   boolean
|
||||||
|
*/
|
||||||
|
public DeckLister(GameType gt0, boolean deletable, boolean editable) {
|
||||||
|
super();
|
||||||
|
skin = AllZone.getSkin();
|
||||||
|
this.setOpaque(false);
|
||||||
|
this.setLayout(new MigLayout("insets 0, gap 0, wrap"));
|
||||||
|
|
||||||
|
rows = new ArrayList<RowPanel>();
|
||||||
|
|
||||||
|
icoDelete = new ImageIcon("res/images/icons/DeleteIcon.png");
|
||||||
|
icoDeleteOver = new ImageIcon("res/images/icons/DeleteIconOver.png");
|
||||||
|
icoEdit = new ImageIcon("res/images/icons/EditIcon.png");
|
||||||
|
icoEditOver = new ImageIcon("res/images/icons/EditIconOver.png");
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @param decks0   Deck[] */
|
||||||
|
public void setDecks(Deck[] decks0) {
|
||||||
|
this.removeAll();
|
||||||
|
|
||||||
|
// Title row
|
||||||
|
JPanel rowTitle = new JPanel();
|
||||||
|
rowTitle.setBackground(skin.getColor("inactive"));
|
||||||
|
rowTitle.setLayout(new MigLayout("insets 0, gap 0"));
|
||||||
|
rowTitle.add(new TitleLabel("Delete"), "w 40px!, h 20px!, gaptop 5px");
|
||||||
|
rowTitle.add(new TitleLabel("Edit"), "w 40px!, h 20px!, gaptop 5px");
|
||||||
|
rowTitle.add(new TitleLabel("Deck Name"), "w 200px:200px, h 20px!, gaptop 5px");
|
||||||
|
rowTitle.add(new TitleLabel("Main"), "w 40px, h 20px!, gaptop 5px");
|
||||||
|
rowTitle.add(new TitleLabel("Side"), "w 40px!, h 20px!, gaptop 5px");
|
||||||
|
this.add(rowTitle, "w 100%!, h 30px!");
|
||||||
|
|
||||||
|
RowPanel row;
|
||||||
|
for (Deck d : decks0) { System.out.println(d.getName());
|
||||||
|
row = new RowPanel(d);
|
||||||
|
row.add(new DeleteButton(row), "w 40px!, h 20px!, gaptop 5px");
|
||||||
|
row.add(new EditButton(row), "w 40px!, h 20px!, gaptop 5px");
|
||||||
|
row.add(new JLabel(d.getName()), "w 200px:200px, h 20px!, gaptop 5px");
|
||||||
|
row.add(new JLabel(String.valueOf(d.getMain().countAll())), "w 40px, h 20px!, gaptop 5px");
|
||||||
|
row.add(new JLabel(String.valueOf(d.getSideboard().countAll())), "w 40px!, h 20px!, gaptop 5px");
|
||||||
|
this.add(row, "w 100%!, h 30px!");
|
||||||
|
rows.add(row);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @return Deck */
|
||||||
|
public Deck getSelectedDeck() {
|
||||||
|
Deck selectedDeck = null;
|
||||||
|
for (RowPanel r : rows) {
|
||||||
|
if (r.isSelected()) {
|
||||||
|
selectedDeck = r.getDeck();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return selectedDeck;
|
||||||
|
}
|
||||||
|
|
||||||
|
private class DeleteButton extends JButton {
|
||||||
|
public DeleteButton(final RowPanel r0) {
|
||||||
|
super();
|
||||||
|
setRolloverEnabled(true);
|
||||||
|
setPressedIcon(icoDeleteOver);
|
||||||
|
setRolloverIcon(icoDeleteOver);
|
||||||
|
setIcon(icoDelete);
|
||||||
|
setOpaque(false);
|
||||||
|
setContentAreaFilled(false);
|
||||||
|
setBorder(null);
|
||||||
|
setBorderPainted(false);
|
||||||
|
setToolTipText("Delete this deck");
|
||||||
|
|
||||||
|
this.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent e) {
|
||||||
|
if (r0.selected) { return; }
|
||||||
|
r0.setBackground(skin.getColor("hover"));
|
||||||
|
r0.setOpaque(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class EditButton extends JButton {
|
||||||
|
public EditButton(final RowPanel r0) {
|
||||||
|
super();
|
||||||
|
setRolloverEnabled(true);
|
||||||
|
setPressedIcon(icoEditOver);
|
||||||
|
setRolloverIcon(icoEditOver);
|
||||||
|
setIcon(icoEdit);
|
||||||
|
setOpaque(false);
|
||||||
|
setContentAreaFilled(false);
|
||||||
|
setBorder(null);
|
||||||
|
setBorderPainted(false);
|
||||||
|
setToolTipText("Edit this deck");
|
||||||
|
|
||||||
|
this.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent e) {
|
||||||
|
if (r0.selected) { return; }
|
||||||
|
r0.setBackground(skin.getColor("hover"));
|
||||||
|
r0.setOpaque(true);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private class RowPanel extends JPanel {
|
||||||
|
private Color bgDefault = null;
|
||||||
|
private boolean selected = false;
|
||||||
|
private Deck deck;
|
||||||
|
|
||||||
|
public RowPanel(Deck d0) {
|
||||||
|
super();
|
||||||
|
setOpaque(false);
|
||||||
|
setLayout(new MigLayout("insets 0, gap 0"));
|
||||||
|
setBorder(new MatteBorder(0, 0, 1, 0, skin.getColor("borders")));
|
||||||
|
deck = d0;
|
||||||
|
|
||||||
|
this.addMouseListener(new MouseAdapter() {
|
||||||
|
@Override
|
||||||
|
public void mouseEntered(MouseEvent e) {
|
||||||
|
if (selected) { return; }
|
||||||
|
setBackground(skin.getColor("hover"));
|
||||||
|
setOpaque(true);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void mouseExited(MouseEvent e) {
|
||||||
|
if (selected) { return; }
|
||||||
|
setBackground(bgDefault);
|
||||||
|
setOpaque(false);
|
||||||
|
}
|
||||||
|
@Override
|
||||||
|
public void mousePressed(MouseEvent e) {
|
||||||
|
selectHandler((RowPanel) e.getSource());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
public void setSelected(boolean b0) {
|
||||||
|
bgDefault = (b0 ? skin.getColor("active") : null);
|
||||||
|
selected = b0;
|
||||||
|
setBackground(bgDefault);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isSelected() {
|
||||||
|
return selected;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Deck getDeck() {
|
||||||
|
return deck;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** */
|
||||||
|
private class TitleLabel extends JLabel {
|
||||||
|
public TitleLabel(String txt0) {
|
||||||
|
super(txt0);
|
||||||
|
setForeground(skin.getColor("text"));
|
||||||
|
setFont(skin.getFont1().deriveFont(Font.PLAIN, 11));
|
||||||
|
setHorizontalAlignment(SwingConstants.CENTER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/** @param r0   RowPanel */
|
||||||
|
private void selectHandler(RowPanel r0) {
|
||||||
|
if (previousSelection != null) {
|
||||||
|
previousSelection.setSelected(false);
|
||||||
|
}
|
||||||
|
r0.setSelected(true);
|
||||||
|
previousSelection = r0;
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user