summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Smith <git@kismith.co.uk>2011-07-01 09:19:49 (GMT)
committerKevin Smith <git@kismith.co.uk>2011-07-01 09:19:49 (GMT)
commit2da71a8a85486a494343f1662d64fb5ae5a2a44e (patch)
tree23992f9f2a00bac23b345e5c2cc9c1194efc25be /src/com/isode/stroke/examples
downloadstroke-2da71a8a85486a494343f1662d64fb5ae5a2a44e.zip
stroke-2da71a8a85486a494343f1662d64fb5ae5a2a44e.tar.bz2
Initial import
Diffstat (limited to 'src/com/isode/stroke/examples')
-rw-r--r--src/com/isode/stroke/examples/gui/StrokeGUI.form201
-rw-r--r--src/com/isode/stroke/examples/gui/StrokeGUI.java247
2 files changed, 448 insertions, 0 deletions
diff --git a/src/com/isode/stroke/examples/gui/StrokeGUI.form b/src/com/isode/stroke/examples/gui/StrokeGUI.form
new file mode 100644
index 0000000..502e00b
--- /dev/null
+++ b/src/com/isode/stroke/examples/gui/StrokeGUI.form
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<Form version="1.3" maxVersion="1.7" type="org.netbeans.modules.form.forminfo.JFrameFormInfo">
+ <Properties>
+ <Property name="defaultCloseOperation" type="int" value="3"/>
+ </Properties>
+ <SyntheticProperties>
+ <SyntheticProperty name="formSizePolicy" type="int" value="1"/>
+ </SyntheticProperties>
+ <AuxValues>
+ <AuxValue name="FormSettings_autoResourcing" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_autoSetComponentName" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_generateFQN" type="java.lang.Boolean" value="true"/>
+ <AuxValue name="FormSettings_generateMnemonicsCode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_i18nAutoMode" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_layoutCodeTarget" type="java.lang.Integer" value="2"/>
+ <AuxValue name="FormSettings_listenerGenerationStyle" type="java.lang.Integer" value="0"/>
+ <AuxValue name="FormSettings_variablesLocal" type="java.lang.Boolean" value="false"/>
+ <AuxValue name="FormSettings_variablesModifier" type="java.lang.Integer" value="2"/>
+ <AuxValue name="designerSize" type="java.awt.Dimension" value="-84,-19,0,5,115,114,0,18,106,97,118,97,46,97,119,116,46,68,105,109,101,110,115,105,111,110,65,-114,-39,-41,-84,95,68,20,2,0,2,73,0,6,104,101,105,103,104,116,73,0,5,119,105,100,116,104,120,112,0,0,4,60,0,0,3,46"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JPanel" name="jPanel1">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Login Stuff"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JLabel" name="jLabel1">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="JID"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="loginJID_">
+ <Properties>
+ <Property name="bounds" type="java.awt.Rectangle" editor="org.netbeans.beaninfo.editors.RectangleEditor">
+ <Rectangle value="[0, 0, 150, 0]"/>
+ </Property>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[150, 28]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[250, 28]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel2">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Password"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JTextField" name="loginPassword_">
+ <Properties>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[100, 28]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[150, 28]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JButton" name="loginButton_">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Login"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="loginButton_ActionPerformed"/>
+ </Events>
+ </Component>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel2">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Send Stuff"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTextField" name="sendTo_">
+ <Properties>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[150, 28]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[250, 28]"/>
+ </Property>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JLabel" name="jLabel3">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="To"/>
+ </Properties>
+ </Component>
+ <Component class="javax.swing.JButton" name="sendButton_">
+ <Properties>
+ <Property name="text" type="java.lang.String" value="Send"/>
+ </Properties>
+ <Events>
+ <EventHandler event="actionPerformed" listener="java.awt.event.ActionListener" parameters="java.awt.event.ActionEvent" handler="sendButton_ActionPerformed"/>
+ </Events>
+ </Component>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane1">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTextArea" name="sendText_">
+ <Properties>
+ <Property name="columns" type="int" value="20"/>
+ <Property name="rows" type="int" value="5"/>
+ <Property name="minimumSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[150, 16]"/>
+ </Property>
+ <Property name="preferredSize" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[150, 150]"/>
+ </Property>
+ <Property name="size" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[450, 150]"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel3">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="Receive Stuff"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane2">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTextArea" name="receiveText_">
+ <Properties>
+ <Property name="columns" type="int" value="20"/>
+ <Property name="editable" type="boolean" value="false"/>
+ <Property name="rows" type="int" value="5"/>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ <Container class="javax.swing.JPanel" name="jPanel4">
+ <Properties>
+ <Property name="border" type="javax.swing.border.Border" editor="org.netbeans.modules.form.editors2.BorderEditor">
+ <Border info="org.netbeans.modules.form.compat2.border.TitledBorderInfo">
+ <TitledBorder title="XML"/>
+ </Border>
+ </Property>
+ </Properties>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.DesignFlowLayout"/>
+ <SubComponents>
+ <Container class="javax.swing.JScrollPane" name="jScrollPane3">
+ <AuxValues>
+ <AuxValue name="autoScrollPane" type="java.lang.Boolean" value="true"/>
+ </AuxValues>
+
+ <Layout class="org.netbeans.modules.form.compat2.layouts.support.JScrollPaneSupportLayout"/>
+ <SubComponents>
+ <Component class="javax.swing.JTextArea" name="xmlText_">
+ <Properties>
+ <Property name="columns" type="int" value="20"/>
+ <Property name="editable" type="boolean" value="false"/>
+ <Property name="rows" type="int" value="5"/>
+ <Property name="size" type="java.awt.Dimension" editor="org.netbeans.beaninfo.editors.DimensionEditor">
+ <Dimension value="[500, 300]"/>
+ </Property>
+ </Properties>
+ </Component>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+ </Container>
+ </SubComponents>
+</Form>
diff --git a/src/com/isode/stroke/examples/gui/StrokeGUI.java b/src/com/isode/stroke/examples/gui/StrokeGUI.java
new file mode 100644
index 0000000..09f7936
--- /dev/null
+++ b/src/com/isode/stroke/examples/gui/StrokeGUI.java
@@ -0,0 +1,247 @@
+/*
+ * Copyright (c) 2010-2011, Isode Limited, London, England.
+ * All rights reserved.
+ */
+
+/*
+ * MainFrame.java
+ *
+ * Created on Jul 7, 2010, 10:03:01 AM
+ */
+
+package com.isode.stroke.examples.gui;
+
+import com.isode.stroke.client.ClientError;
+import com.isode.stroke.client.ClientOptions;
+import com.isode.stroke.client.CoreClient;
+import com.isode.stroke.elements.Message;
+import com.isode.stroke.eventloop.Event;
+import com.isode.stroke.eventloop.EventLoop;
+import com.isode.stroke.jid.JID;
+import com.isode.stroke.network.JavaNetworkFactories;
+import com.isode.stroke.signals.Slot1;
+import java.awt.EventQueue;
+
+public class StrokeGUI extends javax.swing.JFrame {
+
+ private CoreClient client_;
+
+ /** Creates new form MainFrame */
+ public StrokeGUI() {
+ initComponents();
+ }
+
+ /** This method is called from within the constructor to
+ * initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is
+ * always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ loginJID_ = new javax.swing.JTextField();
+ jLabel2 = new javax.swing.JLabel();
+ loginPassword_ = new javax.swing.JTextField();
+ loginButton_ = new javax.swing.JButton();
+ jPanel2 = new javax.swing.JPanel();
+ sendTo_ = new javax.swing.JTextField();
+ jLabel3 = new javax.swing.JLabel();
+ sendButton_ = new javax.swing.JButton();
+ jScrollPane1 = new javax.swing.JScrollPane();
+ sendText_ = new javax.swing.JTextArea();
+ jPanel3 = new javax.swing.JPanel();
+ jScrollPane2 = new javax.swing.JScrollPane();
+ receiveText_ = new javax.swing.JTextArea();
+ jPanel4 = new javax.swing.JPanel();
+ jScrollPane3 = new javax.swing.JScrollPane();
+ xmlText_ = new javax.swing.JTextArea();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
+ getContentPane().setLayout(new java.awt.FlowLayout());
+
+ jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Login Stuff"));
+
+ jLabel1.setText("JID");
+ jPanel1.add(jLabel1);
+
+ loginJID_.setBounds(new java.awt.Rectangle(0, 0, 150, 0));
+ loginJID_.setMinimumSize(new java.awt.Dimension(150, 28));
+ loginJID_.setPreferredSize(new java.awt.Dimension(250, 28));
+ jPanel1.add(loginJID_);
+
+ jLabel2.setText("Password");
+ jPanel1.add(jLabel2);
+
+ loginPassword_.setMinimumSize(new java.awt.Dimension(100, 28));
+ loginPassword_.setPreferredSize(new java.awt.Dimension(150, 28));
+ jPanel1.add(loginPassword_);
+
+ loginButton_.setText("Login");
+ loginButton_.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ loginButton_ActionPerformed(evt);
+ }
+ });
+ jPanel1.add(loginButton_);
+
+ getContentPane().add(jPanel1);
+
+ jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Send Stuff"));
+
+ sendTo_.setMinimumSize(new java.awt.Dimension(150, 28));
+ sendTo_.setPreferredSize(new java.awt.Dimension(250, 28));
+ jPanel2.add(sendTo_);
+
+ jLabel3.setText("To");
+ jPanel2.add(jLabel3);
+
+ sendButton_.setText("Send");
+ sendButton_.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ sendButton_ActionPerformed(evt);
+ }
+ });
+ jPanel2.add(sendButton_);
+
+ sendText_.setColumns(20);
+ sendText_.setRows(5);
+ sendText_.setMinimumSize(new java.awt.Dimension(150, 16));
+ sendText_.setPreferredSize(new java.awt.Dimension(150, 150));
+ sendText_.setSize(new java.awt.Dimension(450, 150));
+ jScrollPane1.setViewportView(sendText_);
+
+ jPanel2.add(jScrollPane1);
+
+ getContentPane().add(jPanel2);
+
+ jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Receive Stuff"));
+
+ receiveText_.setColumns(20);
+ receiveText_.setEditable(false);
+ receiveText_.setRows(5);
+ jScrollPane2.setViewportView(receiveText_);
+
+ jPanel3.add(jScrollPane2);
+
+ getContentPane().add(jPanel3);
+
+ jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("XML"));
+
+ xmlText_.setColumns(20);
+ xmlText_.setEditable(false);
+ xmlText_.setRows(5);
+ xmlText_.setSize(new java.awt.Dimension(500, 300));
+ jScrollPane3.setViewportView(xmlText_);
+
+ jPanel4.add(jScrollPane3);
+
+ getContentPane().add(jPanel4);
+ jPanel4.getAccessibleContext().setAccessibleName("XML");
+
+ pack();
+ }// </editor-fold>//GEN-END:initComponents
+
+ private void loginButton_ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_loginButton_ActionPerformed
+ System.out.println("Client created from JID " + loginJID_.getText());
+ EventLoop eventLoop = new EventLoop() {
+ @Override
+ protected void post(final Event event) {
+ EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ event.callback.run();
+ }
+ });
+ }
+
+ };
+ client_ = new CoreClient(eventLoop, JID.fromString(loginJID_.getText()), loginPassword_.getText(), new JavaNetworkFactories(eventLoop));
+ System.out.println("Connecting");
+ try {
+ client_.connect(new ClientOptions());
+ } catch (Exception e) {
+ //Something bad happened
+ System.out.println("Exception!");
+ }
+ System.out.println("Connected");
+ final StrokeGUI thisObject = this;
+ client_.onMessageReceived.connect(new Slot1<Message>() {
+
+ public void call(Message p1) {
+ thisObject.handleMessageReceived(p1);
+ }
+ });
+ client_.onError.connect(new Slot1<ClientError>() {
+
+ public void call(ClientError p1) {
+ thisObject.handleClientError(p1);
+ }
+ });
+ client_.onDataRead.connect(new Slot1<String>() {
+
+ public void call(String p1) {
+ xmlText_.append(">>> " + p1 + "\n");
+ }
+ });
+ client_.onDataWritten.connect(new Slot1<String>() {
+
+ public void call(String p1) {
+ xmlText_.append("<<< " + p1 + "\n");
+ }
+ });
+ }//GEN-LAST:event_loginButton_ActionPerformed
+
+ private void sendButton_ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_sendButton_ActionPerformed
+ Message message = new Message();
+ message.setTo(JID.fromString(sendTo_.getText()));
+ message.setBody(sendText_.getText());
+ System.out.println("Message body is " + message.getBody());
+ client_.sendMessage(message);
+
+ }//GEN-LAST:event_sendButton_ActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ new StrokeGUI().setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel3;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JScrollPane jScrollPane2;
+ private javax.swing.JScrollPane jScrollPane3;
+ private javax.swing.JButton loginButton_;
+ private javax.swing.JTextField loginJID_;
+ private javax.swing.JTextField loginPassword_;
+ private javax.swing.JTextArea receiveText_;
+ private javax.swing.JButton sendButton_;
+ private javax.swing.JTextArea sendText_;
+ private javax.swing.JTextField sendTo_;
+ private javax.swing.JTextArea xmlText_;
+ // End of variables declaration//GEN-END:variables
+
+ private void handleMessageReceived(Message message) {
+ String from = message.getFrom().toString();
+ String body = message.getBody();
+ receiveText_.append("<" + from + "> " + body + "\n");
+ }
+
+ private void handleClientError(ClientError error) {
+ receiveText_.append("Error connecting to server\n");
+ }
+
+}