Package org.apache.interop.smgr

Source Code of org.apache.interop.smgr.BlackBerryApp

package org.apache.interop.smgr;

import javax.swing.SwingUtilities;
import javax.swing.WindowConstants;


import org.apache.interop.smgr.SubsciberInfoJPanel;
import org.apache.interop.smgr.BackberryJPanel;
import org.apache.ws.addressing.EndpointReference;
import org.apache.ws.addressing.XmlBeansEndpointReference;
import org.apache.ws.addressing.v2004_08_10.AddressingConstants;
import org.apache.ws.muws.interop.client.FaultException;
import org.apache.ws.muws.interop.client.ResourceStub;
import org.apache.ws.muws.interop.client.ServiceStub;
import org.apache.ws.util.XmlBeanUtils;
import org.apache.ws.util.soap.Envelope;
import org.apache.xmlbeans.XmlException;
import org.apache.xmlbeans.XmlObject;
import org.apache.xmlbeans.impl.values.XmlAnyTypeImpl;
import org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.ManagementEventType;
import org.oasisOpen.docs.wsdm.x2004.x12.muws.wsdmMuwsPart1.impl.ManagementEventTypeImpl;
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.NotificationMessageHolderType;
import org.oasisOpen.docs.wsn.x2004.x06.wsnWSBaseNotification12Draft01.NotifyDocument;
import org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.ResourcePropertyValueChangeNotificationType.NewValue;
import org.oasisOpen.docs.wsrf.x2004.x06.wsrfWSResourceProperties12Draft01.impl.ResourcePropertyValueChangeNotificationTypeImpl;
import org.xmlsoap.schemas.soap.envelope.Body;
import org.xmlsoap.schemas.soap.envelope.EnvelopeDocument;

import java.awt.Color;
import java.awt.FlowLayout;
import java.awt.BorderLayout;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

import javax.swing.JSplitPane;
import javax.xml.namespace.QName;
/**
* This code was generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* *************************************
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED
* for this machine, so Jigloo or this code cannot be used legally
* for any corporate or commercial purpose.
* *************************************
*/
public class BlackBerryApp extends javax.swing.JFrame implements ConnectionListener,MessageListener {
  private SubsciberInfoJPanel subsciberInfoJPanel;
  private JSplitPane jSplitPaneParts;
  private BackberryJPanel backberryJPanel;
  private NotificationListener m_listener;
    private ResourceStub m_resource;
    private StringBuffer m_buffer=new StringBuffer();
  private MessageWorker m_messageWorker;


  /**
  * Auto-generated main method to display this JFrame
  */
  public static void main(String[] args) {
    BlackBerryApp inst = new BlackBerryApp();
    inst.setVisible(true);
  }
 
  public BlackBerryApp() {
    super();
    initGUI();
    subsciberInfoJPanel.setConnectionListener(this);
  }
 
  private void initGUI() {
    try {
      this.setSize(400, 350);
      setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
      this.setTitle("SMgr");
      {
        jSplitPaneParts = new JSplitPane();
        this.getContentPane().add(jSplitPaneParts, BorderLayout.CENTER);
        jSplitPaneParts.setOrientation(JSplitPane.VERTICAL_SPLIT);
        jSplitPaneParts.setDividerLocation(110);
        jSplitPaneParts.setPreferredSize(new java.awt.Dimension(392, 319));
        {
          subsciberInfoJPanel = new SubsciberInfoJPanel();
          jSplitPaneParts.add(subsciberInfoJPanel, JSplitPane.LEFT);
          FlowLayout subsciberInfoJPanelLayout = new FlowLayout();
          subsciberInfoJPanel.setResourceUrl("http://192.168.2.171:4400/ettk/wsdm/services/ADMSubscribePort");
          subsciberInfoJPanel.setNotificationLister("http://192.168.2.120:8003/bogasendpoint");
          subsciberInfoJPanelLayout.setAlignment(FlowLayout.LEFT);
          subsciberInfoJPanel.setLayout(subsciberInfoJPanelLayout);
        }
        {
          backberryJPanel = new BackberryJPanel();
          jSplitPaneParts.add(backberryJPanel, JSplitPane.RIGHT);
        }
      }
    } catch (Exception e) {
      e.printStackTrace();
    }
  }

  /* (non-Javadoc)
   * @see org.apache.interop.smgr.ConnectionListener#onConnect()
   */
  public void onConnect() {
        try {
          startListener();
          // Subscribe
      m_resource = new ResourceStub( getEpr(subsciberInfoJPanel.getResourceUrl(),null) );
      EndpointReference response = m_resource.subscribe(subsciberInfoJPanel.getNotificationLister(),new QName(subsciberInfoJPanel.getTopicNamespace(),subsciberInfoJPanel.getTopicName()));
     
     
    } catch (XmlException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (FaultException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    } catch (IOException e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
       

    backberryJPanel.startTimer();

   
  }

  /* (non-Javadoc)
   * @see org.apache.interop.smgr.ConnectionListener#onDisconnect()
   */
  public void onDisconnect() {
    backberryJPanel.stopTimer();   
    backberryJPanel.setColor(Color.WHITE,0f);
    m_resource = null;
    m_messageWorker.stop();
    m_listener.stop();
   
  }

  private EndpointReference getEpr(String URL, String Rid) throws XmlException{
    XmlBeansEndpointReference x=new XmlBeansEndpointReference(URL,AddressingConstants.NSURI_ADDRESSING_SCHEMA);
    if(Rid!=null)
      x.setReferenceProperties(new XmlObject[]{(XmlObject)XmlObject.Factory.parse("<svr:ResourceIdentifier xmlns:svr=\"http://wsdmdemo.org/service/weather-client-config\">"+Rid+"</svr:ResourceIdentifier>")});   
    return x;   
  }
 
  public void startListener() throws IOException{
    m_messageWorker=new MessageWorker(this,m_buffer);
    m_listener=new NotificationListener(8002,600000,m_buffer);
    m_listener.setCloseSocketAfterNotification(false);
    m_messageWorker.start();
    m_listener.start();
  }

  /* (non-Javadoc)
   * @see org.apache.interop.smgr.MessageListener#onMessage(java.lang.String)
   */
  public void onMessage(String messageText) {
    // TODO Auto-generated method stub
    System.err.println(messageText);
    final String colorName=getColorFromMessage(messageText);
    System.err.println("CHanging to "+colorName);
   
    SwingUtilities.invokeLater(new Runnable(){

      public void run() {
        backberryJPanel.setColor(colorName2Color(colorName),0.5f);       
      }});
   
  }
  /**
   * @param messageText
   * @return
   */
  private String getColorFromMessage1(String messageText) {
    try {
      EnvelopeDocument ed=(org.xmlsoap.schemas.soap.envelope.EnvelopeDocument)XmlObject.Factory.parse(messageText);
      org.xmlsoap.schemas.soap.envelope.Envelope env = ed.getEnvelope();
      Body body = env.getBody();
      XmlObject[] arryStuff = XmlBeanUtils.getChildElements(body);
      if(arryStuff.length==0)
        return "Black";
      NotifyDocument.Notify ele = (NotifyDocument.Notify) arryStuff[0];
      NotificationMessageHolderType noteMess = ele.getNotificationMessageArray(0);
      XmlAnyTypeImpl mess = (XmlAnyTypeImpl)noteMess.getMessage();
      ManagementEventTypeImpl manEvt = (ManagementEventTypeImpl)XmlBeanUtils.getChildElements(mess)[0];
      //manEvt.get
      ResourcePropertyValueChangeNotificationTypeImpl propChngEvt = (ResourcePropertyValueChangeNotificationTypeImpl)XmlBeanUtils.getChildElements(manEvt)[0];
      NewValue newValue = propChngEvt.getNewValue();
//      XmlObject complience = (XmlObject)XmlBeanUtils.getChildElements(newValue)[0];
     
    } catch (Exception e) {
      // TODO Auto-generated catch block
      e.printStackTrace();
    }
    return "Black";
  }

  /**
   * @param messageText
   * @return
   */
  public String getColorFromMessage(String messageText) {
    //<bbry:Compliance xmlns=\"http://pda.rim\">Red<
    int posStartColor=0;
    int posCompliance = messageText.toLowerCase().indexOf("bbry:compliance");
    if(posCompliance<0)
      return "Black";
    int posCompliance1 = messageText.toLowerCase().indexOf("bbry:compliance",posCompliance+1);
    if(posCompliance1<0)
      return "Black";
    int posCompliance2 = messageText.toLowerCase().indexOf("bbry:compliance",posCompliance1+1);
    if(posCompliance2<0){
      posStartColor=posCompliance;
      //return "Black";
    } else {
      posStartColor=posCompliance2;
    }
   
    while(messageText.charAt(posStartColor)!='>' && posStartColor<messageText.length()){
      System.out.println(messageText.charAt(posStartColor));
      posStartColor++;
    }
    if(posStartColor==messageText.length())
      return "Black";
   
    int posEndColor=posStartColor+1;
    while(messageText.charAt(posEndColor)!='<' && posEndColor<messageText.length()){
      System.out.println(messageText.charAt(posEndColor));
      posEndColor++;
    }
    if(posEndColor==messageText.length())
      return "Black";

    String color=messageText.substring(posStartColor+1,posEndColor);
   
    return color;

  }

 
 
  private Color colorName2Color(String colorName){
    if(colorName.toLowerCase().equals("yellow")){
      return Color.YELLOW;
    }
    if(colorName.toLowerCase().equals("green")){
      return Color.GREEN;
    }
    if(colorName.toLowerCase().equals("red")){
      return Color.RED;
    }
    if(colorName.toLowerCase().equals("blue")){
      return Color.BLUE;
    }
    return Color.BLACK;
  }

}
TOP

Related Classes of org.apache.interop.smgr.BlackBerryApp

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.