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

Commit 4263742

Browse files
author
Mitch Talmadge
committed
Refactored project, moved most of the Error Reporting classes into AptiAPI, changed donate link to donate.liveforcode.net, added new link to Copyright label, added progress dialog to Error Reporter, added confirmation message when Error Report is successfully sent.
1 parent 43c5c36 commit 4263742

Some content is hidden

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

58 files changed

+388
-211
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
target
2-
src/main/java/me/MitchT/EmojiTools/Extraction/Extractors/AppleExtractionThread1_7.java
2+
src/main/java/net/liveforcode/EmojiTools/Extraction/Extractors/AppleExtractionThread1_7.java

Emoji-Tools.iml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
88
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
99
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
10+
<sourceFolder url="file://$MODULE_DIR$/src/test/testResources" type="java-test-resource" />
1011
<excludeFolder url="file://$MODULE_DIR$/target" />
1112
</content>
1213
<orderEntry type="inheritedJdk" />

src/main/java/com/AptiTekk/AptiAPI/AptiAPI.java

Lines changed: 24 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.AptiTekk.AptiAPI;
22

3+
import java.awt.*;
34
import java.io.BufferedReader;
45
import java.io.DataOutputStream;
56
import java.io.IOException;
@@ -18,15 +19,21 @@ public class AptiAPI {
1819
private static final String ERROR_REPORTER = "ErrorReporter.php";
1920
protected final ArrayList<AptiAPIListener> APIListeners = new ArrayList<>();
2021
private final int projectID;
22+
private final ErrorHandler errorHandler;
23+
private Image imageIcon;
2124

22-
public AptiAPI(int projectID) {
25+
public AptiAPI(int projectID, Image imageIcon) {
2326
this.projectID = projectID;
27+
this.imageIcon = imageIcon;
28+
this.errorHandler = new ErrorHandler(this);
2429
}
2530

26-
public boolean sendErrorReport(String report) {
31+
protected boolean sendErrorReport(ErrorReport report) {
2732

28-
try {
33+
ErrorReportProgressDialog progressDialog = new ErrorReportProgressDialog(this, imageIcon);
34+
progressDialog.setVisible(true);
2935

36+
try {
3037
//Step 1 -- Generate Token
3138
String tokenResponse = POSTData(API_URL + API_VERSION + "/" + TOKEN_GENERATOR, "projectID=" + projectID);
3239

@@ -35,8 +42,6 @@ public boolean sendErrorReport(String report) {
3542
return false;
3643
}
3744

38-
System.out.println("Response: " + tokenResponse);
39-
4045
String[] responseSplit = tokenResponse.split(":");
4146
if (responseSplit.length < 3) {
4247
displayError("Token response length is < 3!");
@@ -50,13 +55,14 @@ public boolean sendErrorReport(String report) {
5055

5156
String token = responseSplit[2];
5257

53-
String encryptedReport = new AptiCrypto(token.substring(0, 16)).encrypt(report);
58+
String encryptedReport = new AptiCrypto(token.substring(0, 16)).encrypt(report.generateReport());
5459

5560
//Step 2 -- Submit Report
5661
String errorReportResponse = POSTData(API_URL + API_VERSION + "/" + ERROR_REPORTER, "projectID=" + projectID + "&token=" + token + "&report=" + encryptedReport);
5762

5863
if (errorReportResponse == null) {
5964
displayError("Could not submit report: Null response");
65+
return false;
6066
}
6167

6268
responseSplit = tokenResponse.split(":");
@@ -75,6 +81,10 @@ public boolean sendErrorReport(String report) {
7581
return true;
7682
}
7783

84+
public ErrorHandler getErrorHandler() {
85+
return errorHandler;
86+
}
87+
7888
public void addAPIListener(AptiAPIListener listener) {
7989
if (!APIListeners.contains(listener))
8090
APIListeners.add(listener);
@@ -85,19 +95,20 @@ public void removeAPIListener(AptiAPIListener listener) {
8595
APIListeners.remove(listener);
8696
}
8797

88-
private void displayInfo(String message) {
98+
99+
protected void displayInfo(String message) {
89100
for (AptiAPIListener listener : APIListeners) {
90101
listener.displayInfo(message);
91102
}
92103
}
93104

94-
private void displayError(String message) {
105+
protected void displayError(String message) {
95106
for (AptiAPIListener listener : APIListeners) {
96107
listener.displayError(message);
97108
}
98109
}
99110

100-
private void shutdown() {
111+
protected void shutdownListeners() {
101112
for (AptiAPIListener listener : APIListeners) {
102113
listener.shutdown();
103114
}
@@ -138,4 +149,8 @@ private String POSTData(String url, String data) {
138149
}
139150
return null;
140151
}
152+
153+
public Image getIconImage() {
154+
return imageIcon;
155+
}
141156
}

src/main/java/me/MitchT/EmojiTools/GUI/ErrorDetailsDialog.form renamed to src/main/java/com/AptiTekk/AptiAPI/ErrorDetailsDialog.form

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="me.MitchT.EmojiTools.GUI.ErrorDetailsDialog">
2+
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.AptiTekk.AptiAPI.ErrorDetailsDialog">
33
<grid id="cbd77" binding="contentPane" layout-manager="BorderLayout" hgap="0" vgap="0">
44
<constraints>
55
<xy x="48" y="54" width="600" height="391"/>

src/main/java/me/MitchT/EmojiTools/GUI/ErrorDetailsDialog.java renamed to src/main/java/com/AptiTekk/AptiAPI/ErrorDetailsDialog.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,9 @@
1818
* Contact Mitch Talmadge at mitcht@liveforcode.net
1919
*/
2020

21-
package me.MitchT.EmojiTools.GUI;
21+
package com.AptiTekk.AptiAPI;
2222

23-
import me.MitchT.EmojiTools.EmojiTools;
24-
import me.MitchT.EmojiTools.ErrorReport;
23+
import net.liveforcode.EmojiTools.EmojiTools;
2524

2625
import javax.swing.*;
2726
import java.awt.event.*;

src/main/java/me/MitchT/EmojiTools/ErrorHandler.java renamed to src/main/java/com/AptiTekk/AptiAPI/ErrorHandler.java

Lines changed: 5 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -18,21 +18,14 @@
1818
* Contact Mitch Talmadge at mitcht@liveforcode.net
1919
*/
2020

21-
package me.MitchT.EmojiTools;
21+
package com.AptiTekk.AptiAPI;
2222

23-
import com.AptiTekk.AptiAPI.AptiAPI;
24-
import com.AptiTekk.AptiAPI.AptiAPIListener;
25-
import me.MitchT.EmojiTools.GUI.ErrorReportDialog;
26-
27-
import javax.swing.*;
28-
29-
public class ErrorHandler implements Thread.UncaughtExceptionHandler, AptiAPIListener {
23+
public class ErrorHandler implements Thread.UncaughtExceptionHandler {
3024

3125
private final AptiAPI aptiAPI;
3226

33-
public ErrorHandler() {
34-
this.aptiAPI = new AptiAPI(Versioning.APTIAPI_PROJECT_ID);
35-
this.aptiAPI.addAPIListener(this);
27+
public ErrorHandler(AptiAPI aptiAPI) {
28+
this.aptiAPI = aptiAPI;
3629
}
3730

3831
@Override
@@ -43,24 +36,6 @@ public void uncaughtException(Thread t, Throwable e) {
4336
System.out.println("Thread Name: " + t.getName());
4437
System.out.println("Exception:\n" + errorReport.getStackTrace());
4538

46-
new ErrorReportDialog(this, null, errorReport).setVisible(true);
47-
}
48-
49-
public void sendErrorReport(ErrorReport errorReport) {
50-
this.aptiAPI.sendErrorReport(errorReport.generateReport());
51-
}
52-
53-
@Override
54-
public void displayInfo(final String message) {
55-
JOptionPane.showMessageDialog(null, message, "Info", JOptionPane.INFORMATION_MESSAGE);
56-
}
57-
58-
@Override
59-
public void displayError(final String message) {
60-
JOptionPane.showMessageDialog(null, message, "Error", JOptionPane.ERROR_MESSAGE);
61-
}
62-
63-
@Override
64-
public void shutdown() {
39+
new ErrorReportDialog(aptiAPI, errorReport).setVisible(true);
6540
}
6641
}

src/main/java/me/MitchT/EmojiTools/ErrorReport.java renamed to src/main/java/com/AptiTekk/AptiAPI/ErrorReport.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,9 @@
1818
* Contact Mitch Talmadge at mitcht@liveforcode.net
1919
*/
2020

21-
package me.MitchT.EmojiTools;
21+
package com.AptiTekk.AptiAPI;
22+
23+
import net.liveforcode.EmojiTools.Versioning;
2224

2325
import java.io.PrintWriter;
2426
import java.io.StringWriter;
@@ -63,23 +65,23 @@ public String generateReport() {
6365
}
6466

6567
public String getDescription() {
66-
return (description.isEmpty()) ? "No Comment." : description;
68+
return (description == null || description.isEmpty()) ? "No Comment." : description;
6769
}
6870

6971
public void setDescription(String description) {
7072
this.description = description;
7173
}
7274

7375
public String getName() {
74-
return (name.isEmpty()) ? "No Name." : name;
76+
return (name == null || name.isEmpty()) ? "No Name." : name;
7577
}
7678

7779
public void setName(String name) {
7880
this.name = name;
7981
}
8082

8183
public String getEmail() {
82-
return (email.isEmpty()) ? "No Email." : email;
84+
return (email == null || email.isEmpty()) ? "No Email." : email;
8385
}
8486

8587
public void setEmail(String email) {

src/main/java/me/MitchT/EmojiTools/GUI/ErrorReportDialog.form renamed to src/main/java/com/AptiTekk/AptiAPI/ErrorReportDialog.form

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="me.MitchT.EmojiTools.GUI.ErrorReportDialog">
2+
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.AptiTekk.AptiAPI.ErrorReportDialog">
33
<grid id="cbd77" binding="contentPane" layout-manager="BorderLayout" hgap="0" vgap="0">
44
<constraints>
55
<xy x="48" y="54" width="412" height="425"/>

src/main/java/me/MitchT/EmojiTools/GUI/ErrorReportDialog.java renamed to src/main/java/com/AptiTekk/AptiAPI/ErrorReportDialog.java

Lines changed: 14 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -18,20 +18,18 @@
1818
* Contact Mitch Talmadge at mitcht@liveforcode.net
1919
*/
2020

21-
package me.MitchT.EmojiTools.GUI;
21+
package com.AptiTekk.AptiAPI;
2222

23-
import me.MitchT.EmojiTools.EmojiTools;
24-
import me.MitchT.EmojiTools.ErrorHandler;
25-
import me.MitchT.EmojiTools.ErrorReport;
26-
import me.MitchT.EmojiTools.GUI.Tabs.OperationTab;
23+
import net.liveforcode.EmojiTools.GUI.TextFilter;
2724

2825
import javax.swing.*;
26+
import java.awt.*;
2927
import java.awt.event.*;
3028

3129
public class ErrorReportDialog extends JDialog implements ActionListener {
32-
private final OperationTab gui;
3330
private final ErrorReport report;
34-
private final ErrorHandler errorHandler;
31+
private Image imageIcon;
32+
private AptiAPI aptiAPI;
3533
private JPanel contentPane;
3634
private JButton sendReportButton;
3735
private JButton dontSendButton;
@@ -40,13 +38,11 @@ public class ErrorReportDialog extends JDialog implements ActionListener {
4038
private JButton viewDetailsButton;
4139
private JTextArea descriptionArea;
4240

43-
public ErrorReportDialog(ErrorHandler errorHandler, OperationTab gui, ErrorReport report) {
44-
45-
this.errorHandler = errorHandler;
46-
this.gui = gui;
41+
public ErrorReportDialog(AptiAPI aptiAPI, ErrorReport report) {
42+
this.aptiAPI = aptiAPI;
4743
this.report = report;
4844

49-
setIconImage(EmojiTools.getLogoImage());
45+
setIconImage(aptiAPI.getIconImage());
5046
setContentPane(contentPane);
5147
setModal(true);
5248
setResizable(false);
@@ -76,25 +72,24 @@ public void actionPerformed(ActionEvent e) {
7672
}, KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);
7773

7874
pack();
79-
setLocationRelativeTo(gui);
75+
setLocationRelativeTo(null);
8076
}
8177

8278
private void onSendReport() {
83-
if (gui != null)
84-
gui.stopOperations();
85-
79+
aptiAPI.shutdownListeners();
8680
this.report.setDescription(this.descriptionArea.getText());
8781
this.report.setName(this.nameField.getText());
8882
this.report.setEmail(this.emailAddressField.getText());
89-
this.errorHandler.sendErrorReport(report);
83+
this.aptiAPI.sendErrorReport(report);
84+
85+
JOptionPane.showMessageDialog(this, "Error Report has been sent successfully! Thank you for your support!", "Error Report Sent!", JOptionPane.INFORMATION_MESSAGE, new ImageIcon(aptiAPI.getIconImage()));
9086

9187
this.dispose();
9288
System.exit(0);
9389
}
9490

9591
private void onDontSendReport() {
96-
if (gui != null)
97-
gui.stopOperations();
92+
aptiAPI.shutdownListeners();
9893
this.dispose();
9994
System.exit(0);
10095
}
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<form xmlns="http://www.intellij.com/uidesigner/form/" version="1" bind-to-class="com.AptiTekk.AptiAPI.ErrorReportProgressDialog">
3+
<grid id="cbd77" binding="contentPane" layout-manager="BorderLayout" hgap="0" vgap="0">
4+
<constraints>
5+
<xy x="48" y="54" width="297" height="125"/>
6+
</constraints>
7+
<properties/>
8+
<border type="none"/>
9+
<children>
10+
<grid id="16ae2" layout-manager="BorderLayout" hgap="0" vgap="0">
11+
<constraints border-constraint="South"/>
12+
<properties/>
13+
<border type="none"/>
14+
<children>
15+
<component id="be450" class="javax.swing.JButton" binding="cancelButton">
16+
<constraints border-constraint="Center"/>
17+
<properties>
18+
<text value="&amp;Cancel"/>
19+
</properties>
20+
</component>
21+
</children>
22+
</grid>
23+
<grid id="594a1" layout-manager="GridBagLayout">
24+
<constraints border-constraint="North"/>
25+
<properties/>
26+
<border type="empty">
27+
<size top="10" left="10" bottom="10" right="10"/>
28+
</border>
29+
<children>
30+
<component id="a3bf0" class="javax.swing.JLabel" binding="titleLabel">
31+
<constraints>
32+
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="0" anchor="8" fill="0" indent="0" use-parent-layout="false"/>
33+
<gridbag weightx="0.0" weighty="0.0"/>
34+
</constraints>
35+
<properties>
36+
<font size="16"/>
37+
<text value="Sending Error Report... Please Wait"/>
38+
</properties>
39+
</component>
40+
</children>
41+
</grid>
42+
<grid id="614b1" layout-manager="GridLayoutManager" row-count="1" column-count="1" same-size-horizontally="false" same-size-vertically="false" hgap="-1" vgap="-1">
43+
<margin top="0" left="0" bottom="0" right="0"/>
44+
<constraints border-constraint="Center"/>
45+
<properties/>
46+
<border type="empty">
47+
<size top="0" left="10" bottom="10" right="10"/>
48+
</border>
49+
<children>
50+
<component id="8dcd7" class="javax.swing.JProgressBar" binding="progressBar">
51+
<constraints>
52+
<grid row="0" column="0" row-span="1" col-span="1" vsize-policy="0" hsize-policy="6" anchor="0" fill="1" indent="0" use-parent-layout="false"/>
53+
</constraints>
54+
<properties>
55+
<indeterminate value="true"/>
56+
<string value="Sending..."/>
57+
<stringPainted value="true"/>
58+
</properties>
59+
</component>
60+
</children>
61+
</grid>
62+
</children>
63+
</grid>
64+
</form>

0 commit comments

Comments
 (0)