package com.maplesoft.maplenet.tutorial; import java.awt.*; import java.awt.event.*; import java.applet.*; import java.net.URL; import javax.swing.*; import com.maplesoft.maplenet.client.MapleStatement; public class ConnectToServer extends Applet { boolean isStandalone = false; JTextField inputString = new JTextField(); JButton jButton1 = new JButton(); String sUser = ""; String sPassword = ""; String sHost = ""; int iPort = 14444; JScrollPane resultPane = new JScrollPane(); JTextArea resultWindow = new JTextArea(); JLabel jLabel1 = new JLabel(); JLabel jLabel2 = new JLabel(); //Get a parameter value public String getParameter(String key, String def) { return isStandalone ? System.getProperty(key, def) : (getParameter(key) != null ? getParameter(key) : def); } //Construct the applet public ConnectToServer() { } //Initialize the applet public void init() { try { jbInit(); String sTmp; sUser = getParameter( "user" ); sPassword = getParameter( "password"); // Use this document to determine Server name URL url = getDocumentBase(); String sDocHost = url.getHost(); // See if Server name is over-ridden by 'host' tag sHost = getParameter( "host", sDocHost); sTmp = getParameter( "port", "14444" ); iPort = Integer.parseInt( sTmp ); sizecheck(); } catch(Exception e) { e.printStackTrace(); } } private void sizecheck() { int w = getWidth(); int h = getHeight(); int x1; int y1; int w1; int h1; x1= inputString.getX(); y1= inputString.getY(); h1 = inputString.getHeight(); w1 = (w-2*x1); if(w1 < 20) w1 = 20; inputString.setSize( w1, h1 ); h1 = resultPane.getHeight(); resultPane.setSize(w1, h1); x1= jButton1.getX(); w1 = (w-2*x1); if(w1 < 20) w1 = 20; h1 = jButton1.getHeight(); jButton1.setSize( w1, h1 ); } //Component initialization private void jbInit() throws Exception { this.setLayout(null); jButton1.setNextFocusableComponent(inputString); jButton1.setText("Send"); jButton1.setBounds(new Rectangle(147, 249, 107, 33)); jButton1.addActionListener(new ConnectToServer_jButton1_actionAdapter(this)); resultPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); resultPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); resultPane.getViewport().setBackground(SystemColor.info); resultPane.setOpaque(true); resultPane.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS); resultPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); resultPane.getViewport().setBackground(SystemColor.info); resultPane.setAutoscrolls(true); resultPane.setDoubleBuffered(true); resultPane.setOpaque(true); resultPane.setBounds(new Rectangle(25, 95, 350, 140)); resultWindow.setToolTipText("Results from Maple"); resultWindow.setBackground(SystemColor.info); inputString.setNextFocusableComponent(jButton1); inputString.setToolTipText("Enter a Maple Text String"); inputString.setBounds(new Rectangle(26, 33, 350, 30)); jLabel1.setText("Enter a Maple String"); jLabel1.setBounds(new Rectangle(26, 7, 186, 22)); jLabel2.setText("Result"); jLabel2.setBounds(new Rectangle(26, 72, 121, 18)); this.addComponentListener(new ConnectToServer_this_componentAdapter(this)); this.add(jButton1, null); this.add(inputString, null); this.add(resultPane, null); this.add(jLabel1, null); this.add(jLabel2, null); resultPane.getViewport().add(resultWindow, null); } //Get Applet information public String getAppletInfo() { return "Applet Information"; } //Get parameter info public String[][] getParameterInfo() { return null; } void Semd_actionPerformed(ActionEvent e) { try { // ************************************************************************ // Here is where the Work is done // 1. Extract the Maple command from the inputString EntryField // 2. Create a MapleStatement object using host, port, user and password // 3. Pass the maple command to the execute() method // 4. retrieve the result from the getResponse() method. // ************************************************************************ String sQuestion; String sAnswer; sQuestion = inputString.getText(); MapleStatement statement = new MapleStatement( sHost, iPort, sUser, sPassword ); statement.execute( sQuestion ); sAnswer = inputString.getText() + " = " + statement.getResponse() + "\n" ; resultWindow.append( sAnswer ); }catch( Exception ex ) { System.out.println( "Send Error: " + ex.toString() ); } } void Applet_componentResized(ComponentEvent e) { sizecheck(); } } class ConnectToServer_jButton1_actionAdapter implements java.awt.event.ActionListener { ConnectToServer adaptee; ConnectToServer_jButton1_actionAdapter(ConnectToServer adaptee) { this.adaptee = adaptee; } public void actionPerformed(ActionEvent e) { adaptee.Semd_actionPerformed(e); } } class ConnectToServer_this_componentAdapter extends java.awt.event.ComponentAdapter { ConnectToServer adaptee; ConnectToServer_this_componentAdapter(ConnectToServer adaptee) { this.adaptee = adaptee; } public void componentResized(ComponentEvent e) { adaptee.Applet_componentResized(e); } }