Some UI fixes
I have made some minor UI improvements to cardforge:
The card table sorter treats colored mana as more significant than colorless mana when sorting by casting cost
The card table sorter treats colored mana as more significant than colorless mana when sorting by casting cost
- Code: Select all
diff --git a/src/forge/CardUtil.java b/src/forge/CardUtil.java
index 53ab4ea..0dc5abc 100644
--- a/src/forge/CardUtil.java
+++ b/src/forge/CardUtil.java
@@ -309,4 +309,12 @@ public class CardUtil {
return "none";
}
+
+ public static double getWeightedManaCost(String manaCost)
+ {
+ if(manaCost.equals("")) return 0;
+
+ ManaCost cost = new ManaCost(manaCost);
+ return cost.getWeightedManaCost();
+ }
}
diff --git a/src/forge/ManaCost.java b/src/forge/ManaCost.java
index fa19ebf..dfcb1ab 100644
--- a/src/forge/ManaCost.java
+++ b/src/forge/ManaCost.java
@@ -187,6 +187,22 @@ public class ManaCost {
return cmc;
}
+ /**
+ * Returns Mana cost, adjusted slightly to make colored mana parts more significant.
+ * Should only be used for comparison purposes.
+ * @return The converted cost + 0.0001* the number of colored mana in the cost
+ */
+ public double getWeightedManaCost(){
+ double cmc = 0;
+ for(Object s : manaPart){
+ cmc += ((Mana_Part)s).getConvertedManaCost();
+ if (s instanceof Mana_PartColor){
+ cmc+= 0.0001;
+ }
+ }
+ return cmc;
+ }
+
private ArrayList<Object> split(String cost) {
ArrayList<Object> list = new ArrayList<Object>();
diff --git a/src/forge/TableSorter.java b/src/forge/TableSorter.java
index 3637020..235fd03 100644
--- a/src/forge/TableSorter.java
+++ b/src/forge/TableSorter.java
@@ -48,13 +48,13 @@ public class TableSorter implements Comparator<Card>, NewConstants
}
else if (column == 2)//Cost
{
- aCom = Integer.valueOf(CardUtil.getConvertedManaCost(a.getManaCost()));
- bCom = Integer.valueOf(CardUtil.getConvertedManaCost(b.getManaCost()));
+ aCom = Double.valueOf(CardUtil.getWeightedManaCost(a.getManaCost()));
+ bCom = Double.valueOf(CardUtil.getWeightedManaCost(b.getManaCost()));
if(a.isLand())
- aCom = Integer.valueOf(-1);
+ aCom = Double.valueOf(-1);
if(b.isLand())
- bCom = Integer.valueOf(-1);
+ bCom = Double.valueOf(-1);
}
else if (column == 3)//Color
{
--
- Code: Select all
diff --git a/src/forge/Gui_Quest_Assignments.java b/src/forge/Gui_Quest_Assignments.java
index b6904c0..17cd677 100644
--- a/src/forge/Gui_Quest_Assignments.java
+++ b/src/forge/Gui_Quest_Assignments.java
@@ -4,6 +4,7 @@ import java.awt.Dimension;
import java.awt.Font;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
+import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
import java.util.ArrayList;
@@ -54,7 +55,15 @@ public class Gui_Quest_Assignments extends JFrame implements NewConstants{
setup();
- this.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
+ this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+ this.addWindowListener(new WindowAdapter()
+ {
+ @Override
+ public void windowClosed(WindowEvent e)
+ {
+ Gui_Quest_Assignments.this.this_windowClosing(e);
+ }
+ });
setSize(1024, 768);
this.setResizable(false);
@@ -293,11 +302,10 @@ public class Gui_Quest_Assignments extends JFrame implements NewConstants{
questGui.setVisible(true);
dispose();
-
}
void this_windowClosing(WindowEvent e) {
- quitButton_actionPerformed(null);
+ questGui.setVisible(true);
}
}
--
- Code: Select all
diff --git a/src/forge/Gui_Quest.java b/src/forge/Gui_Quest.java
index b783804..8506744 100644
--- a/src/forge/Gui_Quest.java
+++ b/src/forge/Gui_Quest.java
@@ -394,11 +394,11 @@ public class Gui_Quest extends JFrame implements NewConstants{
sb.append("\r\n");
sb.append("Comic Book Guy 3 hard Roc and Rukh Eggs, Flamebrake, Earthquake, Auriok Champion, Kor Firewalker");
sb.append("\r\n");
- sb.append("Crocodile Dundee 1 easy Mone red deck with Mudbrawler Cohort and Bloodmark Mentor");
+ sb.append("Crocodile Dundee 1 easy Mono red deck with Mudbrawler Cohort and Bloodmark Mentor");
sb.append("\r\n");
- sb.append("Crocodile Dundee 2 medium Mone red deck with Mudbrawler Cohort and Bloodmark Mentor");
+ sb.append("Crocodile Dundee 2 medium Mono red deck with Mudbrawler Cohort and Bloodmark Mentor");
sb.append("\r\n");
- sb.append("Crocodile Dundee 3 hard Mone red deck with Mudbrawler Cohort and Bloodmark Mentor");
+ sb.append("Crocodile Dundee 3 hard Mono red deck with Mudbrawler Cohort and Bloodmark Mentor");
sb.append("\r\n");
sb.append("Cyclops 3 hard Slivers mainly, some spells");
sb.append("\r\n");
- Code: Select all
diff --git a/src/forge/Gui_CardShop.java b/src/forge/Gui_CardShop.java
index f0c2fe2..dffbe46 100644
--- a/src/forge/Gui_CardShop.java
+++ b/src/forge/Gui_CardShop.java
@@ -34,6 +34,9 @@ import javax.swing.border.Border;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.MouseInputListener;
+import javax.swing.table.DefaultTableCellRenderer;
+import javax.swing.table.TableCellRenderer;
+
import forge.error.ErrorViewer;
import forge.gui.game.CardDetailPanel;
import forge.gui.game.CardPicturePanel;
@@ -62,8 +65,8 @@ public class Gui_CardShop extends JFrame implements CardContainer, DeckDisplay,
private TitledBorder titledBorder2;
private JButton buyButton = new JButton();
- private JTable topTable = new JTable();
- private JTable bottomTable = new JTable();
+ private JTable topTable;
+ private JTable bottomTable;
private JScrollPane jScrollPane3 = new JScrollPane();
private JPanel jPanel3 = new JPanel();
private GridLayout gridLayout1 = new GridLayout();
@@ -450,6 +453,31 @@ public class Gui_CardShop extends JFrame implements CardContainer, DeckDisplay,
}
private void jbInit() throws Exception {
+
+ //Replace cell renderer with one that displays the cell text as tooltip.
+ topTable = new JTable(){
+ public TableCellRenderer getCellRenderer(int row, int column){
+ TableCellRenderer renderer = new DefaultTableCellRenderer(){
+ public String getToolTipText(){
+ return this.getText();
+ }
+ };
+ return renderer;
+ }
+ };
+
+ bottomTable = new JTable(){
+ public TableCellRenderer getCellRenderer(int row, int column){
+ TableCellRenderer renderer = new DefaultTableCellRenderer(){
+ public String getToolTipText(){
+ return this.getText();
+ }
+ };
+ return renderer;
+ }
+ };
+
+
border1 = new EtchedBorder(EtchedBorder.RAISED, Color.white, new Color(148, 145, 140));
titledBorder1 = new TitledBorder(BorderFactory.createEtchedBorder(Color.white, new Color(148, 145, 140)),
"All Cards");