forked from golanlevin/QR_STENCILER
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFileLoading.pde
More file actions
165 lines (143 loc) · 5.27 KB
/
Copy pathFileLoading.pde
File metadata and controls
165 lines (143 loc) · 5.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
// Author: "Golan Levin" <golan@flong.com>, 01 August, 2011
//================================================================
String getUserSelectedQRCodeImageFilename () {
// Ask the user to load a QR code image file.
// These commands to open a file chooser are taken from:
// http://processing.org/discourse/yabb2/YaBB.pl?board=Syntax;action=display;num=1210972905
println("Please select a QR code image file.");
QRImageFilename = QRDefaultImageFilename;
JFileChooser chooser = new JFileChooser();
boolean bFailed = false;
try
{
File dataDir = new File(sketchPath, "data/");
if (!dataDir.exists()) {
dataDir.mkdirs();
}
String fileExtensions[] = {"gif", "jpg", "jpeg", "png", "tiff", "tif"};
ImageFileFilter IFF = new ImageFileFilter (fileExtensions, "Images");
chooser.setAcceptAllFileFilterUsed (true);
chooser.addChoosableFileFilter(IFF);
chooser.setFileFilter(IFF);
chooser.setDialogTitle("Please select a QR code image!");
chooser.setApproveButtonText("Load QR Image");
chooser.setApproveButtonToolTipText ("Load the selected QR code. This should be a png, jpg, gif or tif.");
chooser.setCurrentDirectory(dataDir);
int returnVal = chooser.showOpenDialog(null);
if (returnVal == JFileChooser.APPROVE_OPTION) {
String tmpString = chooser.getSelectedFile().getName();
String ext = tmpString.substring(tmpString.lastIndexOf('.') + 1);
ext.toLowerCase();
if (ext.equals("jpg") || ext.equals("jpeg") || ext.equals("gif") || ext.equals("png")) {
//QRImageFilename = chooser.getSelectedFile().getName();
QRImageFilename = chooser.getSelectedFile().getPath();
println("You chose to open this file:\n " + QRImageFilename);
println();
}
else {
bFailed = true;
}
}
else {
bFailed = true;
}
}
catch(Exception e) {
e.printStackTrace();
}
if (bFailed) {
println("Loading default QR code image: " + QRImageFilename);
}
return QRImageFilename;
}
//===============================================================
// adapted from http://www.student.nada.kth.se/~u1eetop7/prost/ExampleFileFilter.java
class ImageFileFilter extends FileFilter {
private String TYPE_UNKNOWN = "Type Unknown";
private String HIDDEN_FILE = "Hidden File";
private Hashtable filters = null;
private String description = null;
private String fullDescription = null;
private boolean useExtensionsInDescription = true;
//----------------------------------------------------------------
// Example: new ImageFileFilter (String {"gif", "jpg"}, "Gif and JPG Images");
// "gif", "jpg", "jpeg", "png", "tiff", "tif"
public ImageFileFilter(String[] filters, String description) {
this.filters = new Hashtable();
for (int i = 0; i < filters.length; i++) {
addExtension(filters[i]);
}
if (description!=null) {
setDescription(description);
}
}
//----------------------------------------------------------------
public void addExtension(String extension) {
if (filters == null) {
filters = new Hashtable(5);
}
filters.put(extension.toLowerCase(), this);
fullDescription = null;
}
//----------------------------------------------------------------
public void setDescription(String description) {
this.description = description;
fullDescription = null;
}
//----------------------------------------------------------------
// Returns the human readable description of this filter. For
// example: "JPEG and GIF Image Files (*.jpg, *.gif)"
public String getDescription() {
if (fullDescription == null) {
if (description == null || isExtensionListInDescription()) {
fullDescription = description==null ? "(" : description + " (";
// build the description from the extension list
Enumeration extensions = filters.keys();
if (extensions != null) {
fullDescription += "." + (String) extensions.nextElement();
while (extensions.hasMoreElements ()) {
fullDescription += ", " + (String) extensions.nextElement();
}
}
fullDescription += ")";
}
else {
fullDescription = description;
}
}
return fullDescription;
}
//----------------------------------------------------------------
public boolean accept(File f) {
if (f != null) {
if (f.isDirectory()) {
return true;
}
String extension = getExtension(f);
if (extension != null && filters.get(getExtension(f)) != null) {
return true;
};
}
return false;
}
//----------------------------------------------------------------
public boolean isExtensionListInDescription() {
return useExtensionsInDescription;
}
//----------------------------------------------------------------
public String getExtension(File f) {
if (f != null) {
String filename = f.getName();
int i = filename.lastIndexOf('.');
if (i>0 && i<filename.length()-1) {
return filename.substring(i+1).toLowerCase();
};
}
return null;
}
//----------------------------------------------------------------
public void setExtensionListInDescription(boolean b) {
useExtensionsInDescription = b;
fullDescription = null;
}
}