Skip to content

Commit 1ee2b2a

Browse files
committed
Implemented Border for indexed cards.
1 parent 2d2cd1e commit 1ee2b2a

4 files changed

Lines changed: 41 additions & 13 deletions

File tree

src/de/littlerolf/sav/data/BaseSorter.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,18 +4,26 @@
44
import java.util.List;
55

66
public abstract class BaseSorter {
7-
7+
88
private List<HistoryItem> history = new ArrayList<HistoryItem>();
99

1010
public abstract int[] sortArray(int[] values);
11+
1112
public abstract String getName();
12-
13-
public void saveHistory(int values[]) {
13+
14+
public void saveHistory(int[] values) {
1415
HistoryItem i = new HistoryItem();
1516
i.values = values.clone();
1617
history.add(i);
1718
}
18-
19+
20+
public void saveHistory(int[] values, int index) {
21+
HistoryItem i = new HistoryItem();
22+
i.values = values.clone();
23+
i.index = index;
24+
history.add(i);
25+
}
26+
1927
public List<HistoryItem> getHistory() {
2028
return history;
2129
}

src/de/littlerolf/sav/data/HistoryItem.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@
22

33
public class HistoryItem {
44
public int[] values;
5+
public int index = -1;
56
}

src/de/littlerolf/sav/gui/SAVFrame.java

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,11 @@
1111
import javax.swing.JButton;
1212
import javax.swing.JComboBox;
1313
import javax.swing.JComponent;
14-
import javax.swing.JFileChooser;
1514
import javax.swing.JFrame;
1615
import javax.swing.JLabel;
17-
import javax.swing.JOptionPane;
1816
import javax.swing.JScrollPane;
1917
import javax.swing.JSlider;
2018
import javax.swing.SwingConstants;
21-
import javax.swing.UIManager;
22-
import javax.swing.UnsupportedLookAndFeelException;
2319
import javax.swing.event.ChangeEvent;
2420
import javax.swing.event.ChangeListener;
2521

@@ -183,7 +179,7 @@ private void onStartSimulationButtonPressed() {
183179
averageSpeed += benchmarkResults[i];
184180
averageSpeed /= benchmarkResults.length;
185181

186-
lblSpeed.setText(averageSpeed + "µs");
182+
lblSpeed.setText(averageSpeed + "µs");
187183

188184
historyComponent.getHistoryItems().clear();
189185
historyComponent.getHistoryItems().addAll(sorter.getHistory());
@@ -213,6 +209,7 @@ private void reloadSorters() {
213209
this.sorterLoader.loadAllClasses();
214210
this.sorterLoader.instanstiateAllClasses();
215211
this.setSorters(this.sorterLoader.getAllSorters());
212+
216213
refreshUI();
217214
}
218215

src/de/littlerolf/sav/gui/SAVHistoryComponent.java

Lines changed: 26 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package de.littlerolf.sav.gui;
22

3+
import java.awt.BasicStroke;
4+
import java.awt.Color;
35
import java.awt.Graphics;
46
import java.awt.Graphics2D;
57
import java.awt.RenderingHints;
@@ -109,14 +111,34 @@ protected void paintComponent(Graphics g1) {
109111
} else {
110112
cardImage = cardImages[value];
111113
}
112-
g.drawImage(cardImage,
113-
(width / 4) + (i * diff) - cardImage.getWidth() / 8, height
114-
/ 2 - cardImage.getHeight() / 2 / 2,
115-
cardImage.getWidth() / 2, cardImage.getHeight() / 2, null);
114+
115+
int x = (width / 4) + (i * diff) - cardImage.getWidth() / 8;
116+
int y = height / 2 - cardImage.getHeight() / 2 / 2;
117+
int imgWidth = cardImage.getWidth() / 2;
118+
int imgHeight = cardImage.getHeight() / 2;
119+
120+
g.setStroke(new BasicStroke(3));
121+
122+
if (i == currentItem.index)
123+
g.drawRect(x, y, imgWidth, imgHeight);
124+
125+
g.drawImage(cardImage, x, y, imgWidth, imgHeight, null);
116126
i++;
117127
}
118128
}
119129

130+
public BufferedImage colorImage(BufferedImage loadImg, int red, int green,
131+
int blue) {
132+
BufferedImage img = new BufferedImage(loadImg.getWidth(),
133+
loadImg.getHeight(), BufferedImage.TRANSLUCENT);
134+
Graphics2D graphics = img.createGraphics();
135+
Color newColor = new Color(red, green, blue, 0);
136+
graphics.setXORMode(newColor);
137+
graphics.drawImage(loadImg, null, 0, 0);
138+
graphics.dispose();
139+
return img;
140+
}
141+
120142
public List<HistoryItem> getHistoryItems() {
121143
return historyItems;
122144
}

0 commit comments

Comments
 (0)