v0.6.0 released! Weblate integration is complete. New icons (created for

weblate integration) now replace to old ugly ones for the notification
area.
This commit is contained in:
Zukero
2017-04-12 15:57:35 +02:00
parent bca28781bd
commit 5e73b59d06
37 changed files with 147 additions and 80 deletions

View File

@@ -75,6 +75,9 @@ public class AboutEditor extends Editor {
"A slightly modified version of <a href=\"https://github.com/zackehh/siphash-java\">SipHash for Java</a> by Isaac Whitfield.<br/>" +
"License: <a href=\"https://github.com/zackehh/siphash-java/blob/master/LICENSE\">MIT License</a><br/>" +
"<br/>" +
"<a href=\"https://jsoup.org/\">jsoup</a> by Jonathan Hedley<br/>" +
"License: <a href=\"https://jsoup.org/license\">MIT License</a><br/>" +
"<br/>" +
"See the tabs below to find the full license text for each of these.<br/>" +
"<br/>" +
"The Windows installer was created with:<br/>" +
@@ -125,6 +128,7 @@ public class AboutEditor extends Editor {
editorTabsHolder.add("prefuse License", getInfoPane(new Scanner(ATContentStudio.class.getResourceAsStream("/license-prefuse.txt"), "UTF-8").useDelimiter("\\A").next(), "text/text"));
editorTabsHolder.add("BeanShell License", getInfoPane(new Scanner(ATContentStudio.class.getResourceAsStream("/LICENSE.LGPLv3.txt"), "UTF-8").useDelimiter("\\A").next(), "text/text"));
editorTabsHolder.add("SipHash for Java License", getInfoPane(new Scanner(ATContentStudio.class.getResourceAsStream("/LICENSE.siphash-zackehh.txt"), "UTF-8").useDelimiter("\\A").next(), "text/text"));
editorTabsHolder.add("jsoup License", getInfoPane(new Scanner(ATContentStudio.class.getResourceAsStream("/LICENSE.jsoup.txt"), "UTF-8").useDelimiter("\\A").next(), "text/text"));
editorTabsHolder.add("ATCS License", getInfoPane(new Scanner(ATContentStudio.class.getResourceAsStream("/LICENSE.GPLv3.txt"), "UTF-8").useDelimiter("\\A").next(), "text/text"));
}

View File

@@ -231,6 +231,27 @@ public class DefaultIcons {
public static Image getZoomImage() { return getImage(ZOOM_RES); }
public static Image getZoomIcon() { return getIcon(ZOOM_RES); }
private static String STATUS_RED_RES = "/com/gpl/rpg/atcontentstudio/img/status_red.png";
public static Image getStatusRedImage() { return getImage(STATUS_RED_RES); }
public static Image getStatusRedIcon() { return getIcon(STATUS_RED_RES); }
private static String STATUS_ORANGE_RES = "/com/gpl/rpg/atcontentstudio/img/status_orange.png";
public static Image getStatusOrangeImage() { return getImage(STATUS_ORANGE_RES); }
public static Image getStatusOrangeIcon() { return getIcon(STATUS_ORANGE_RES); }
private static String STATUS_GREEN_RES = "/com/gpl/rpg/atcontentstudio/img/status_green.png";
public static Image getStatusGreenImage() { return getImage(STATUS_GREEN_RES); }
public static Image getStatusGreenIcon() { return getIcon(STATUS_GREEN_RES); }
private static String STATUS_BLUE_RES = "/com/gpl/rpg/atcontentstudio/img/status_blue.png";
public static Image getStatusBlueImage() { return getImage(STATUS_BLUE_RES); }
public static Image getStatusBlueIcon() { return getIcon(STATUS_BLUE_RES); }
private static String STATUS_UNKNOWN_RES = "/com/gpl/rpg/atcontentstudio/img/status_unknown.png";
public static Image getStatusUnknownImage() { return getImage(STATUS_UNKNOWN_RES); }
public static Image getStatusUnknownIcon() { return getIcon(STATUS_UNKNOWN_RES); }
private static Image getImage(String res) {
if (imageCache.get(res) == null) {
try {

View File

@@ -121,12 +121,45 @@ public abstract class Editor extends JPanel implements ProjectElementListener {
labelPane.setLayout(new JideBoxLayout(labelPane, JideBoxLayout.LINE_AXIS));
final JLabel translateLinkLabel = new JLabel(getWeblateLabelLink(initialValue));
labelPane.add(translateLinkLabel, JideBoxLayout.FIX);
final JLabel translationStatus = new JLabel(" - Status: unknown - Retrieving...");
labelPane.add(new JLabel(" "), JideBoxLayout.FIX);
final JLabel translationStatus = new JLabel("Retrieving...");
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusUnknownIcon()));
translationStatus.setToolTipText("Connecting to weblate...");
labelPane.add(translationStatus, JideBoxLayout.VARY);
new Thread() {
public void run() {
WeblateIntegration.WeblateTranslationUnit unit = WeblateIntegration.getTranslationUnit(initialValue);
translationStatus.setText(" - Status: "+unit.status.toString()+" - "+unit.translatedText);
switch (unit.status) {
case absent:
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusRedIcon()));
translationStatus.setToolTipText("This string isn't managed by weblate (yet).");
break;
case done:
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusGreenIcon()));
translationStatus.setToolTipText("This string is translated on weblate.");
break;
case fuzzy:
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusOrangeIcon()));
translationStatus.setToolTipText("This string is translated on weblate, but needs a review.");
break;
case notTranslated:
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusRedIcon()));
translationStatus.setToolTipText("This string isn't translated in your language on weblate yet.");
break;
case warning:
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusOrangeIcon()));
translationStatus.setToolTipText("This string is translated on weblate, but triggered some weblate checks.");
break;
case error:
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusRedIcon()));
translationStatus.setToolTipText("Cannot connect to weblate. Check internet connection and firewall settings.");
break;
case notAllowed:
translationStatus.setIcon(new ImageIcon(DefaultIcons.getStatusBlueIcon()));
translationStatus.setToolTipText("You have not allowed ATCS to access to internet. You can change this in the workspace settings.");
break;
}
translationStatus.setText(unit.translatedText);
};
}.start();
pane.add(labelPane, JideBoxLayout.FIX);

View File

@@ -8,7 +8,6 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

View File

@@ -3,14 +3,11 @@ package com.gpl.rpg.atcontentstudio.ui;
import java.awt.Color;
import java.awt.Component;
import java.awt.Font;
import java.io.IOException;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CopyOnWriteArrayList;
import javax.imageio.ImageIO;
import javax.swing.BorderFactory;
import javax.swing.Icon;
import javax.swing.ImageIcon;
@@ -30,22 +27,13 @@ public class NotificationsPane extends JList {
private static final long serialVersionUID = -1100364214372392608L;
public static final String success_img_name = "/com/gpl/rpg/atcontentstudio/img/success.png";
public static final String info_img_name = "/com/gpl/rpg/atcontentstudio/img/info.png";
public static final String warn_img_name = "/com/gpl/rpg/atcontentstudio/img/warn.png";
public static final String error_img_name = "/com/gpl/rpg/atcontentstudio/img/error.png";
public static final Map<Notification.Type, Icon> icons = new LinkedHashMap<Notification.Type, Icon>(Notification.Type.values().length);
static {
try {
icons.put(Notification.Type.SUCCESS, new ImageIcon(ImageIO.read(NotificationsPane.class.getResourceAsStream(success_img_name))));
icons.put(Notification.Type.INFO, new ImageIcon(ImageIO.read(NotificationsPane.class.getResourceAsStream(info_img_name))));
icons.put(Notification.Type.WARN, new ImageIcon(ImageIO.read(NotificationsPane.class.getResourceAsStream(warn_img_name))));
icons.put(Notification.Type.ERROR, new ImageIcon(ImageIO.read(NotificationsPane.class.getResourceAsStream(error_img_name))));
} catch (IOException e) {
e.printStackTrace();
}
icons.put(Notification.Type.SUCCESS, new ImageIcon(DefaultIcons.getStatusGreenIcon()));
icons.put(Notification.Type.INFO, new ImageIcon(DefaultIcons.getStatusBlueIcon()));
icons.put(Notification.Type.WARN, new ImageIcon(DefaultIcons.getStatusOrangeIcon()));
icons.put(Notification.Type.ERROR, new ImageIcon(DefaultIcons.getStatusRedIcon()));
}

View File

@@ -9,7 +9,6 @@ import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

View File

@@ -7,7 +7,6 @@ import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

View File

@@ -12,7 +12,6 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.concurrent.ConcurrentSkipListSet;
import java.util.concurrent.CopyOnWriteArrayList;
import javax.swing.Action;

View File

@@ -33,6 +33,7 @@ public class WorkspaceSettingsEditor extends JDialog {
JCheckBox translatorModeBox;
JComboBox<String> translatorLanguagesBox;
JCheckBox useInternetBox;
@@ -167,15 +168,20 @@ public class WorkspaceSettingsEditor extends JDialog {
translatorLanguagesBox = new JComboBox<String>(WorkspaceSettings.LANGUAGE_LIST);
langPane.add(translatorLanguagesBox);
pane.add(langPane, JideBoxLayout.FIX);
pane.add(new JLabel("If your language isn't here, complain on the forums at https://andorstrail.com/"), JideBoxLayout.FIX);
useInternetBox = new JCheckBox("Allow connecting to internet to retrieve data from weblate.");
pane.add(useInternetBox, JideBoxLayout.FIX);
translatorModeBox.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
translatorLanguagesBox.setEnabled(translatorModeBox.isSelected());
useInternetBox.setEnabled(translatorModeBox.isSelected());
}
});
pane.add(new JLabel("If your language isn't here, complain on the forums at https://andorstrail.com/"), JideBoxLayout.FIX);
return pane;
}
@@ -194,10 +200,15 @@ public class WorkspaceSettingsEditor extends JDialog {
if (settings.translatorLanguage.getCurrentValue() != null) {
translatorModeBox.setSelected(true);
translatorLanguagesBox.setSelectedItem(settings.translatorLanguage.getCurrentValue());
translatorLanguagesBox.setEnabled(true);
useInternetBox.setEnabled(true);
} else {
translatorModeBox.setSelected(false);
translatorLanguagesBox.setSelectedItem(null);
translatorLanguagesBox.setEnabled(false);
useInternetBox.setEnabled(false);
}
useInternetBox.setSelected(settings.useInternet.getCurrentValue());
}
public void pushToModel() {
@@ -214,6 +225,7 @@ public class WorkspaceSettingsEditor extends JDialog {
} else {
settings.translatorLanguage.resetDefault();
}
settings.useInternet.setCurrentValue(useInternetBox.isSelected());
settings.save();
}

View File

@@ -5,7 +5,6 @@ import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

View File

@@ -5,7 +5,6 @@ import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

View File

@@ -1,6 +1,5 @@
package com.gpl.rpg.atcontentstudio.ui.tools;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;

View File

@@ -1,6 +1,5 @@
package com.gpl.rpg.atcontentstudio.ui.tools;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;