3 import java.rmi.NotBoundException;
4 import java.rmi.RMISecurityManager;
5 import java.rmi.RemoteException;
6 import java.rmi.registry.LocateRegistry;
7 import java.rmi.registry.Registry;
8 import java.util.ArrayList;
10 import java.util.Observable;
12 import javax.persistence.metamodel.ManagedType;
13 import javax.swing.JDialog;
14 import javax.swing.JFrame;
15 import javax.swing.JOptionPane;
16 import javax.swing.SwingUtilities;
18 import main.ResultContent;
20 import view.AbstractDialog;
21 import view.AbstractFrame;
22 import view.LoginFrame;
38 private static ArrayList<AbstractFrame> viewFrames =
new ArrayList<AbstractFrame>();
39 private static ArrayList<AbstractDialog> viewDialogs =
new ArrayList<AbstractDialog>();
45 private static int framesLimit = 2;
46 private static int dialogsLimit = 2;
55 String serverPort = String.valueOf(Registry.REGISTRY_PORT);
56 String serverAddress =
"192.168.178.45";
58 System.setProperty(
"java.security.policy",
"file:./client.policy");
60 if (args.length > 1) {
62 serverAddress = args[1];
68 if (System.getSecurityManager() == null) {
69 System.setSecurityManager(
new RMISecurityManager());
73 Registry registry = LocateRegistry.getRegistry(serverAddress,
74 (
new Integer(serverPort)).intValue());
78 }
catch (java.rmi.ConnectException ce) {
82 "Die Server-Anwendung der Projektverwaltung wurde noch nicht gestartet!",
83 "Fehler", JOptionPane.ERROR_MESSAGE);
84 System.err.println(
"Server-Anwendung wurde noch nicht gestartet!");
85 }
catch (RemoteException e) {
86 System.err.println(e);
87 }
catch (NotBoundException e) {
88 System.err.println(e);
95 SwingUtilities.invokeLater(
new Runnable() {
99 }
catch (RemoteException e) {
101 .println(
"Fehler beim Anmelden zum Server bzw. hinzufügen zur Observer-Liste!");
102 System.err.println(e);
104 .println(
"Anwendung wird fehlerbedingt beendet!");
115 System.err.println(
"Anwendung wird fehlerbedingt beendet!");
128 tellChangedData(t,
object);
140 if (view.getClass().equals(jFrame)) {
154 viewFrames.add(jFrame);
156 if (viewFrames.size() > framesLimit) {
157 viewFrames.remove(0);
159 .println(
"Listenkapazität der JFrames im Controller überschritten, das erste Element wurde wieder entfernt!");
173 if (view.getClass().equals(jDialog)) {
187 viewDialogs.add(jDialog);
189 if (viewDialogs.size() > dialogsLimit) {
190 viewDialogs.remove(0);
192 .println(
"Listenkapazität der JDialogs im Controller überschritten, das erste Element wurde wieder entfernt!");
203 private void tellChangedData(Class t, List<Object> results) {
217 private void submitData(Object
object) {
221 notifyObservers(
object);