Skip to content
This repository was archived by the owner on Jan 30, 2023. It is now read-only.

Commit 69a6f17

Browse files
author
Frederik De Bleser
committed
Use Java's resource mechanism to load icons / images.
1 parent 5c78f5a commit 69a6f17

File tree

76 files changed

+104
-73
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

76 files changed

+104
-73
lines changed

build.xml

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
<fail unless="nodebox.version" message="File version.properties should specify nodebox.version."/>
99
<property name="src" value="src/main/java"/>
1010
<property name="res" value="res"/>
11+
<property name="resources" value="src/main/resources"/>
1112
<property name="test" value="src/test/java"/>
1213
<property name="lib" value="lib"/>
1314
<property name="libraries" value="libraries"/>
@@ -93,6 +94,9 @@
9394
<classpath refid="project.classpath"/>
9495
<compilerarg value="-Xlint:unchecked"/>
9596
</javac>
97+
<copy todir="${build.prod}">
98+
<fileset dir="${resources}"/>
99+
</copy>
96100
</target>
97101

98102
<target name="compile-tests" depends="compile">

res/code-reload.png

-644 Bytes
Binary file not shown.

res/dragger-left-active.png

-624 Bytes
Binary file not shown.

res/dragger-right-active.png

-660 Bytes
Binary file not shown.

res/editor-splitter-background.png

-84 Bytes
Binary file not shown.

res/editor-splitter-handle.png

-140 Bytes
Binary file not shown.

res/node-codechanged.png

-538 Bytes
Binary file not shown.

res/node-connection-glow.png

-886 Bytes
Binary file not shown.

res/node-error.png

-554 Bytes
Binary file not shown.

res/node-glow.png

-901 Bytes
Binary file not shown.

res/node-in-port.png

-154 Bytes
Binary file not shown.

res/node-mask.png

-355 Bytes
Binary file not shown.

res/node-out-port.png

-238 Bytes
Binary file not shown.

res/node-reflection.png

-2 KB
Binary file not shown.

res/node-rendered.png

-507 Bytes
Binary file not shown.

res/node-rim.png

-384 Bytes
Binary file not shown.

res/splitter-h-background.png

-117 Bytes
Binary file not shown.

res/splitter-v-background.png

-122 Bytes
Binary file not shown.

src/main/java/nodebox/client/AnimationBar.java

+9-5
Original file line numberDiff line numberDiff line change
@@ -9,22 +9,22 @@
99
import javax.swing.event.ChangeEvent;
1010
import javax.swing.event.ChangeListener;
1111
import java.awt.*;
12-
import java.io.File;
1312
import java.io.IOException;
13+
import java.io.InputStream;
1414

1515
public class AnimationBar extends JPanel implements ChangeListener {
1616

17-
public static Image animationBackground;
1817
private static final int ANIMATION_BAR_HEIGHT = 27;
1918

2019
static {
2120
try {
22-
animationBackground = ImageIO.read(new File("res/animation-background.png"));
21+
animationBackground = ImageIO.read(AnimationBar.class.getResourceAsStream("/animation-background.png"));
2322
} catch (IOException e) {
2423
e.printStackTrace();
2524
}
2625
}
2726

27+
public static Image animationBackground;
2828
private final NodeBoxDocument document;
2929
private final DraggableNumber frameNumber;
3030
private final NButton playButton;
@@ -50,18 +50,22 @@ public AnimationBar(final NodeBoxDocument document) {
5050
frameNumber.addChangeListener(this);
5151
frameNumberPanel.add(frameNumber);
5252
add(frameNumberPanel);
53-
playButton = new NButton("Play", "res/animation-play.png", "res/animation-stop.png");
53+
playButton = new NButton("Play", getImageStream("/animation-play.png"), getImageStream("/animation-stop.png"));
5454
playButton.setToolTipText("Play Animation");
5555
playButton.setActionMethod(this, "playAnimation");
5656
forcePlayButtonWidth(45);
57-
NButton rewindButton = new NButton("Rewind", "res/animation-rewind.png");
57+
NButton rewindButton = new NButton("Rewind", getImageStream("/animation-rewind.png"));
5858
rewindButton.setToolTipText("Rewind Animation");
5959
rewindButton.setActionMethod(this, "rewindAnimation");
6060
add(playButton);
6161
add(rewindButton);
6262
setFrame(1);
6363
}
6464

65+
private InputStream getImageStream(String name) {
66+
return getClass().getResourceAsStream(name);
67+
}
68+
6569
public void setFrame(double frame) {
6670
this.frame = frame;
6771
frameNumber.setValue(frame);

src/main/java/nodebox/client/Application.java

+3-2
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
import java.io.File;
3434
import java.io.FileInputStream;
3535
import java.io.IOException;
36+
import java.net.URL;
3637
import java.util.ArrayList;
3738
import java.util.Collections;
3839
import java.util.List;
@@ -422,8 +423,8 @@ public String getName() {
422423
return "NodeBox";
423424
}
424425

425-
public String getIconFile() {
426-
return "res/applogo.png";
426+
public URL getIconFile() {
427+
return Application.class.getResource("/application-logo.png");
427428
}
428429

429430
public Version getVersion() {

src/main/java/nodebox/client/CodeLibrariesDialog.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,10 @@
2323

2424
public class CodeLibrariesDialog extends JDialog {
2525

26-
private static final ImageIcon pythonIcon = new ImageIcon("res/functions-python.png");
27-
private static final ImageIcon clojureIcon = new ImageIcon("res/functions-clojure.png");
28-
private static final ImageIcon minusIcon = new ImageIcon("res/action-minus.png");
29-
private static final ImageIcon plusIcon = new ImageIcon("res/action-plus-arrow.png");
30-
26+
private static final ImageIcon clojureIcon = new ImageIcon(CodeLibrariesDialog.class.getResource("/functions-clojure.png"));
27+
private static final ImageIcon pythonIcon = new ImageIcon(CodeLibrariesDialog.class.getResource("/functions-python.png"));
28+
private static final ImageIcon minusIcon = new ImageIcon(CodeLibrariesDialog.class.getResource("/action-minus.png"));
29+
private static final ImageIcon plusIcon = new ImageIcon(CodeLibrariesDialog.class.getResource("/action-plus-arrow.png"));
3130
private static Map<String, ImageIcon> ICON_LANGUAGE_MAP = ImmutableMap.of(
3231
"python", pythonIcon,
3332
"clojure", clojureIcon);

src/main/java/nodebox/client/Divider.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import javax.imageio.ImageIO;
44
import javax.swing.*;
55
import java.awt.*;
6-
import java.io.File;
76
import java.io.IOException;
87

98
public class Divider extends JComponent {
@@ -12,7 +11,7 @@ public class Divider extends JComponent {
1211

1312
static {
1413
try {
15-
paneHeaderDivider = ImageIO.read(new File("res/pane-header-divider.png"));
14+
paneHeaderDivider = ImageIO.read(Divider.class.getResourceAsStream("/pane-header-divider.png"));
1615
} catch (IOException e) {
1716
e.printStackTrace();
1817
}

src/main/java/nodebox/client/NetworkPane.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public NetworkPane(NodeBoxDocument document) {
2525
setLayout(new BoxLayout(this, BoxLayout.Y_AXIS));
2626
paneHeader = new PaneHeader("Network");
2727
paneHeader.setAlignmentX(JComponent.LEFT_ALIGNMENT);
28-
NButton newNodeButton = new NButton("New Node", "res/network-new-node.png");
28+
NButton newNodeButton = new NButton("New Node", getClass().getResourceAsStream("/network-new-node.png"));
2929
newNodeButton.setToolTipText("New Node (TAB)");
3030
newNodeButton.setActionMethod(this, "showNodeSelectionDialog");
3131
paneHeader.add(newNodeButton);

src/main/java/nodebox/client/NetworkView.java

+3-3
Original file line numberDiff line numberDiff line change
@@ -111,13 +111,13 @@ public class NetworkView extends JComponent implements PaneView, Zoom, KeyListen
111111

112112
try {
113113
if (Platform.onWindows())
114-
panCursorImage = ImageIO.read(new File("res/view-cursor-pan-32.png"));
114+
panCursorImage = ImageIO.read(NetworkView.class.getResourceAsStream("/view-cursor-pan-32.png"));
115115
else
116-
panCursorImage = ImageIO.read(new File("res/view-cursor-pan.png"));
116+
panCursorImage = ImageIO.read(NetworkView.class.getResourceAsStream("/view-cursor-pan.png"));
117117
Toolkit toolkit = Toolkit.getDefaultToolkit();
118118
panCursor = toolkit.createCustomCursor(panCursorImage, new Point(0, 0), "PanCursor");
119119
defaultCursor = Cursor.getDefaultCursor();
120-
nodeGeneric = ImageIO.read(new File("res/node-generic.png"));
120+
nodeGeneric = ImageIO.read(NetworkView.class.getResourceAsStream("/node-generic.png"));
121121
} catch (IOException e) {
122122
throw new RuntimeException(e);
123123
}

src/main/java/nodebox/client/PortNotesRow.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import javax.imageio.ImageIO;
66
import javax.swing.*;
77
import java.awt.*;
8-
import java.io.File;
98
import java.io.IOException;
109

1110
public class PortNotesRow extends JComponent {
@@ -19,7 +18,7 @@ public class PortNotesRow extends JComponent {
1918

2019
static {
2120
try {
22-
notesBackgroundImage = ImageIO.read(new File("res/notes-background.png"));
21+
notesBackgroundImage = ImageIO.read(PortNotesRow.class.getResourceAsStream("/notes-background.png"));
2322
} catch (IOException e) {
2423
throw new RuntimeException(e);
2524
}

src/main/java/nodebox/client/PortPane.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public PortPane(NodeBoxDocument document) {
1717
this.document = document;
1818
setLayout(new BorderLayout());
1919
paneHeader = new PaneHeader("Ports");
20-
NButton metadataButton = new NButton("Metadata", "res/port-metadata.png");
20+
NButton metadataButton = new NButton("Metadata", getClass().getResourceAsStream("/port-metadata.png"));
2121
metadataButton.setActionMethod(this, "editMetadata");
2222
paneHeader.add(metadataButton);
2323
portView = new PortView(this, document);

src/main/java/nodebox/client/PortRow.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
import java.awt.event.ActionListener;
1414
import java.awt.event.MouseEvent;
1515
import java.awt.event.MouseListener;
16-
import java.io.File;
1716
import java.io.IOException;
1817

1918
public class PortRow extends JComponent implements MouseListener, ActionListener {
@@ -22,7 +21,7 @@ public class PortRow extends JComponent implements MouseListener, ActionListener
2221

2322
static {
2423
try {
25-
popupButtonImage = ImageIO.read(new File("res/options-button.png"));
24+
popupButtonImage = ImageIO.read(PortRow.class.getResourceAsStream("/options-button.png"));
2625
} catch (IOException e) {
2726
throw new RuntimeException(e);
2827
}

src/main/java/nodebox/client/ProgressPanel.java

+3-4
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
import java.awt.*;
88
import java.awt.event.ActionEvent;
99
import java.awt.event.ActionListener;
10-
import java.io.File;
1110
import java.io.IOException;
1211

1312
/**
@@ -22,9 +21,9 @@ public class ProgressPanel extends JComponent {
2221

2322
static {
2423
try {
25-
backgroundImage = ImageIO.read(new File("res/progress-background.png"));
26-
stopOnIcon = new ImageIcon("res/progress-stop-on.png");
27-
stopOffIcon = new ImageIcon("res/progress-stop-off.png");
24+
backgroundImage = ImageIO.read(ProgressPanel.class.getResourceAsStream("/progress-background.png"));
25+
stopOnIcon = new ImageIcon(ProgressPanel.class.getResource("/progress-stop-on.png"));
26+
stopOffIcon = new ImageIcon(ProgressPanel.class.getResource("/progress-stop-off.png"));
2827
} catch (IOException e) {
2928
e.printStackTrace();
3029
}

src/main/java/nodebox/client/Viewer.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@
2222
import java.awt.event.*;
2323
import java.awt.geom.AffineTransform;
2424
import java.awt.geom.Point2D;
25-
import java.io.File;
2625
import java.io.IOException;
2726
import java.util.LinkedList;
2827

@@ -59,9 +58,9 @@ public class Viewer extends PCanvas implements OutputView, Zoom, MouseListener,
5958
Image panCursorImage;
6059
try {
6160
if (Platform.onWindows())
62-
panCursorImage = ImageIO.read(new File("res/view-cursor-pan-32.png"));
61+
panCursorImage = ImageIO.read(Viewer.class.getResourceAsStream("/view-cursor-pan-32.png"));
6362
else
64-
panCursorImage = ImageIO.read(new File("res/view-cursor-pan.png"));
63+
panCursorImage = ImageIO.read(Viewer.class.getResourceAsStream("/view-cursor-pan.png"));
6564
Toolkit toolkit = Toolkit.getDefaultToolkit();
6665
panCursor = toolkit.createCustomCursor(panCursorImage, new Point(0, 0), "PanCursor");
6766
defaultCursor = Cursor.getDefaultCursor();

src/main/java/nodebox/ui/ActionHeader.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import javax.imageio.ImageIO;
44
import javax.swing.*;
55
import java.awt.*;
6-
import java.io.File;
76
import java.io.IOException;
87

98
public class ActionHeader extends JPanel {
@@ -13,8 +12,8 @@ public class ActionHeader extends JPanel {
1312

1413
static {
1514
try {
16-
backgroundImage = ImageIO.read(new File("res/action-gradient.png"));
17-
dividerImage = ImageIO.read(new File("res/action-divider.png"));
15+
backgroundImage = ImageIO.read(ActionHeader.class.getResourceAsStream("/action-gradient.png"));
16+
dividerImage = ImageIO.read(ActionHeader.class.getResourceAsStream("/action-divider.png"));
1817
} catch (IOException e) {
1918
throw new RuntimeException(e);
2019
}

src/main/java/nodebox/ui/AddressBar.java

+2-3
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@
1010
import java.awt.*;
1111
import java.awt.event.MouseEvent;
1212
import java.awt.event.MouseListener;
13-
import java.io.File;
1413
import java.io.IOException;
1514

1615
import static com.google.common.base.Preconditions.checkArgument;
@@ -25,8 +24,8 @@ public class AddressBar extends JPanel implements MouseListener {
2524

2625
static {
2726
try {
28-
addressGradient = ImageIO.read(new File("res/address-gradient.png"));
29-
addressArrow = ImageIO.read(new File("res/address-arrow.png"));
27+
addressGradient = ImageIO.read(AddressBar.class.getResourceAsStream("/address-gradient.png"));
28+
addressArrow = ImageIO.read(AddressBar.class.getResourceAsStream("/address-arrow.png"));
3029
} catch (IOException e) {
3130
throw new RuntimeException(e);
3231
}

src/main/java/nodebox/ui/Divider.java

+1-2
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import javax.imageio.ImageIO;
44
import javax.swing.*;
55
import java.awt.*;
6-
import java.io.File;
76
import java.io.IOException;
87

98
public class Divider extends JComponent {
@@ -12,7 +11,7 @@ public class Divider extends JComponent {
1211

1312
static {
1413
try {
15-
paneHeaderDivider = ImageIO.read(new File("res/pane-header-divider.png"));
14+
paneHeaderDivider = ImageIO.read(Divider.class.getResourceAsStream("/pane-header-divider.png"));
1615
} catch (IOException e) {
1716
e.printStackTrace();
1817
}

src/main/java/nodebox/ui/DraggableNumber.java

+4-5
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
import javax.swing.event.ChangeListener;
77
import java.awt.*;
88
import java.awt.event.*;
9-
import java.io.File;
109
import java.io.IOException;
1110
import java.text.NumberFormat;
1211
import java.util.Locale;
@@ -24,13 +23,13 @@ public class DraggableNumber extends JComponent implements MouseListener, MouseM
2423
static {
2524
Image dragCursorImage;
2625
try {
27-
draggerLeft = ImageIO.read(new File("res/dragger-left.png"));
28-
draggerRight = ImageIO.read(new File("res/dragger-right.png"));
29-
draggerBackground = ImageIO.read(new File("res/dragger-background.png"));
26+
draggerLeft = ImageIO.read(DraggableNumber.class.getResourceAsStream("/dragger-left.png"));
27+
draggerRight = ImageIO.read(DraggableNumber.class.getResourceAsStream("/dragger-right.png"));
28+
draggerBackground = ImageIO.read(DraggableNumber.class.getResourceAsStream("/dragger-background.png"));
3029
draggerLeftWidth = draggerLeft.getWidth(null);
3130
draggerRightWidth = draggerRight.getWidth(null);
3231
draggerHeight = draggerBackground.getHeight(null);
33-
dragCursorImage = ImageIO.read(new File("res/dragger-cursor.png"));
32+
dragCursorImage = ImageIO.read(DraggableNumber.class.getResourceAsStream("/dragger-cursor.png"));
3433
Toolkit toolkit = Toolkit.getDefaultToolkit();
3534
dragCursor = toolkit.createCustomCursor(dragCursorImage, new Point(16, 17), "DragCursor");
3635
} catch (IOException e) {

0 commit comments

Comments
 (0)