src/java/isac/wsdialog/DialogGuide.java
author akremp
Fri, 10 Oct 2003 12:08:29 +0200
changeset 958 99a95aff2c60
parent 955 f184a639548f
child 960 30baa0cd35f8
permissions -rw-r--r--
*** empty log message ***
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
}