author | akremp |
Fri, 10 Oct 2003 12:08:29 +0200 | |
changeset 958 | 99a95aff2c60 |
parent 955 | f184a639548f |
child 960 | 30baa0cd35f8 |
permissions | -rw-r--r-- |
akremp@861 | 1 |
package isac.wsdialog; |
akremp@861 | 2 |
|
mhochrei@906 | 3 |
import isac.bridge.CalcTree; |
akremp@958 | 4 |
import isac.util.*; |
mhochrei@906 | 5 |
import isac.util.ModSpec; |
mhochrei@939 | 6 |
import isac.util.Tactic; |
mhochrei@939 | 7 |
|
akremp@945 | 8 |
import java.io.Serializable; |
mhochrei@954 | 9 |
import java.net.MalformedURLException; |
mhochrei@954 | 10 |
import java.rmi.*; |
mhochrei@954 | 11 |
import java.rmi.registry.LocateRegistry; |
mhochrei@952 | 12 |
import java.rmi.server.UnicastRemoteObject; |
mhochrei@939 | 13 |
import java.util.StringTokenizer; |
akremp@867 | 14 |
|
akremp@861 | 15 |
/** |
akremp@945 | 16 |
* @author Alan Krempler |
akremp@867 | 17 |
*/ |
akremp@861 | 18 |
|
akremp@861 | 19 |
|
mhochrei@952 | 20 |
public class DialogGuide extends UnicastRemoteObject |
mhochrei@952 | 21 |
implements DGuide, IToUser, IToCalc, Serializable { |
mhochrei@952 | 22 |
/** |
mhochrei@952 | 23 |
* @throws RemoteException |
mhochrei@952 | 24 |
*/ |
mhochrei@952 | 25 |
protected DialogGuide() throws RemoteException { |
mhochrei@952 | 26 |
super(); |
mhochrei@954 | 27 |
this.rmiBind(); |
mhochrei@952 | 28 |
} |
mhochrei@952 | 29 |
|
mhochrei@934 | 30 |
protected CalcTree calcTree; |
akremp@899 | 31 |
|
akremp@861 | 32 |
public void attach(CalcTree calc_tree) { |
akremp@861 | 33 |
|
akremp@861 | 34 |
} |
akremp@861 | 35 |
|
akremp@861 | 36 |
public void reDisplay() { |
akremp@861 | 37 |
} |
akremp@861 | 38 |
|
akremp@861 | 39 |
public void newCalculation(ModSpec mod_spec) { |
mhochrei@939 | 40 |
calcTree = new CalcTree(mod_spec, "radish.ist.intra", 5555); |
akremp@861 | 41 |
} |
akremp@899 | 42 |
|
akremp@899 | 43 |
/* (non-Javadoc) |
akremp@899 | 44 |
* @see isac.wsdialog.IToUser#calcChanged(isac.wsdialog.CalcChangedEvent) |
akremp@899 | 45 |
*/ |
akremp@899 | 46 |
public void calcChanged(CalcChangedEvent event) { |
akremp@899 | 47 |
// TODO Auto-generated method stub |
akremp@899 | 48 |
|
akremp@899 | 49 |
} |
akremp@899 | 50 |
|
akremp@899 | 51 |
/* (non-Javadoc) |
akremp@899 | 52 |
* @see isac.wsdialog.IToCalc#iterator() |
akremp@899 | 53 |
*/ |
akremp@899 | 54 |
public ICalcIterator iterator() { |
mhochrei@939 | 55 |
return calcTree.iterator(); |
akremp@899 | 56 |
} |
akremp@899 | 57 |
|
akremp@899 | 58 |
/* (non-Javadoc) |
akremp@899 | 59 |
* @see isac.wsdialog.IToCalc#addListener(isac.wsdialog.IToUser) |
akremp@899 | 60 |
*/ |
akremp@899 | 61 |
public boolean addListener(IToUser listener) { |
akremp@899 | 62 |
// TODO Auto-generated method stub |
akremp@899 | 63 |
return false; |
akremp@899 | 64 |
} |
mhochrei@939 | 65 |
|
mhochrei@939 | 66 |
public Tactic fetchProposedTactic() { |
mhochrei@939 | 67 |
//TODO: ask Walther for improvements. Stupid thing this. |
mhochrei@939 | 68 |
Tactic t = calcTree.fetchProposedTactic(); |
mhochrei@939 | 69 |
StringTokenizer tokenizer = new StringTokenizer(t.getName(), "_"); |
mhochrei@939 | 70 |
StringBuffer tacticStringCap = new StringBuffer(); |
mhochrei@939 | 71 |
int tokens = tokenizer.countTokens(); |
mhochrei@939 | 72 |
for (int i = 0; i < tokens; i++) { |
mhochrei@939 | 73 |
String s = tokenizer.nextToken().toLowerCase(); |
mhochrei@939 | 74 |
char c = Character.toUpperCase(s.charAt(0)); |
mhochrei@939 | 75 |
tacticStringCap.append(c).append(s.substring(1)); |
mhochrei@939 | 76 |
if (i != tokens - 1) |
mhochrei@939 | 77 |
tacticStringCap.append("_"); |
mhochrei@939 | 78 |
} |
mhochrei@939 | 79 |
//System.out.println(tacticStringCap.toString()); |
mhochrei@939 | 80 |
t.setName(tacticStringCap.toString()); |
mhochrei@939 | 81 |
return t; |
mhochrei@939 | 82 |
} |
mhochrei@939 | 83 |
|
mhochrei@939 | 84 |
public void setNextTactic(Tactic tactic) { |
mhochrei@939 | 85 |
calcTree.setNextTactic(tactic); |
akremp@958 | 86 |
|
akremp@958 | 87 |
public |
mhochrei@939 | 88 |
} |
mhochrei@954 | 89 |
|
mhochrei@954 | 90 |
private void rmiBind(){ |
mhochrei@954 | 91 |
if(System.getSecurityManager() == null) { |
mhochrei@954 | 92 |
System.setSecurityManager(new RMISecurityManager()); |
mhochrei@954 | 93 |
} |
mhochrei@954 | 94 |
|
mhochrei@954 | 95 |
try{ |
mhochrei@955 | 96 |
LocateRegistry.createRegistry(1099); |
mhochrei@954 | 97 |
}catch(java.rmi.RemoteException exc2){ |
mhochrei@954 | 98 |
System.err.println("can not create registry: " + exc2.getMessage()); |
mhochrei@954 | 99 |
} |
mhochrei@954 | 100 |
|
mhochrei@954 | 101 |
String name = "//localhost/isac-DialogGuide"; |
mhochrei@954 | 102 |
try { |
mhochrei@954 | 103 |
System.out.println("try to bind as " + name); |
mhochrei@954 | 104 |
Naming.rebind(name, this); |
mhochrei@954 | 105 |
System.out.println("Object Manager bound to " + name); |
mhochrei@954 | 106 |
} catch (java.rmi.ConnectException e) { |
mhochrei@954 | 107 |
System.err.println("failed to contact as " + name + |
mhochrei@955 | 108 |
" (creating RMI-Server on localhost: 1099)"); |
mhochrei@954 | 109 |
} catch (RemoteException e) { |
mhochrei@954 | 110 |
// TODO Auto-generated catch block |
mhochrei@954 | 111 |
e.printStackTrace(); |
mhochrei@954 | 112 |
} catch (MalformedURLException e) { |
mhochrei@954 | 113 |
// TODO Auto-generated catch block |
mhochrei@954 | 114 |
e.printStackTrace(); |
mhochrei@954 | 115 |
} |
mhochrei@954 | 116 |
} |
mhochrei@954 | 117 |
|
mhochrei@954 | 118 |
public static void main(String[] args) { |
mhochrei@954 | 119 |
try { |
mhochrei@954 | 120 |
new DialogGuide(); |
mhochrei@954 | 121 |
} catch (RemoteException e) { |
mhochrei@954 | 122 |
// TODO Auto-generated catch block |
mhochrei@954 | 123 |
e.printStackTrace(); |
mhochrei@954 | 124 |
} |
mhochrei@954 | 125 |
} |
akremp@861 | 126 |
} |