Advertisement
Guest User

Untitled

a guest
Aug 19th, 2017
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. package com.conceptualideas.chat.views
  2. {
  3.     import com.conceptualideas.chat.core.CIChatField;
  4.     import com.conceptualideas.chat.interfaces.IComposerContext;
  5.     import com.conceptualideas.chat.interfaces.IDisposable;
  6.     import com.conceptualideas.chat.interfaces.IEmoticonMapper;
  7.     import com.conceptualideas.chat.models.ChatFieldMessage;
  8.     import com.conceptualideas.chat.models.ChatFieldsOptions;
  9.  
  10.     import flashx.textLayout.container.ContainerController;
  11.  
  12.     import spark.components.TextArea;
  13.  
  14.  
  15.     [Style(name="fromColor", type="Number", format="Color", inherit="no")]
  16.     [Style(name="messageColor", type="Number", format="Color", inherit="no")]
  17.     [Style(name="showDateTime", type="Boolean")]
  18.     [Style(name="useSameColors", type="Boolean")]
  19.     public class ChatWindow extends TextArea implements IDisposable
  20.     {
  21.  
  22.         private var chatField:CIChatField
  23.  
  24.  
  25.         private var _composerContext:IComposerContext
  26.  
  27.         private var _emoticons:IEmoticonMapper
  28.  
  29.         private var fontSize:Number
  30.         private var messageColor:String
  31.         private var fromColor:String
  32.  
  33.         private var useSameColors:Boolean = true;
  34.  
  35.         private var forceDownNeeded:Boolean = false;
  36.  
  37.  
  38.  
  39.  
  40.         private var controller:ContainerController
  41.  
  42.         public function ChatWindow()
  43.         {
  44.  
  45.             super();
  46.         }
  47.  
  48.         public function set composerContext(value:IComposerContext):void
  49.         {
  50.             _composerContext = value;
  51.             if (chatField)
  52.                 chatField.composerContext = value;
  53.         }
  54.  
  55.         public function get composerContext():IComposerContext
  56.         {
  57.             return _composerContext;
  58.         }
  59.  
  60.  
  61.         override protected function createChildren():void
  62.         {
  63.             super.createChildren()
  64.             var chatOptions:ChatFieldsOptions = new ChatFieldsOptions();
  65.  
  66.             //chatOptions.fontSize = textDisplay.textFlow.format.fontSize;
  67.  
  68.             setStyle("horizontalScrollPolicy", "none");
  69.             setStyle("verticalScrollPolicy", "auto");
  70.             chatField = new CIChatField(textDisplay, width, height, chatOptions);
  71.             chatField.setTextFlow(textDisplay.textFlow);
  72.            
  73.             if (_composerContext)
  74.                 chatField.composerContext = _composerContext;
  75.  
  76.             controller = textFlow.flowComposer.getControllerAt(0);
  77.  
  78.             //textFlow.interactionManager.
  79.             textDisplay.mouseChildren = true;
  80.  
  81.             useSameColors = Boolean(getStyle("useSameColors"));
  82.  
  83.             //trace(textFlow.interactionManager);
  84.  
  85.             //  textFlowScrollWatcher = new TextFlowScrollWatcher(scroller.verticalScrollBar, chatField.getTextFlow())
  86.  
  87.             //  mapper.add(":D","beer.gif");
  88.             //chatField.emoticons = mapper;
  89.         /*super.createChildren();
  90.            chatView = new UIComponent();
  91.            chatView.percentHeight=100;
  92.            chatView.percentWidth=100;
  93.            addElement(chatView)
  94.  
  95.            scrollBar = new ChatWindowScrollBar();
  96.            addElement(scrollBar)
  97.  
  98.            scrollBar.visible = false;
  99.  
  100.            var chatOptions:ChatFieldsOptions = new ChatFieldsOptions();
  101.  
  102.            chatField = new CIChatField(chatView, width, height, chatOptions);
  103.  
  104.  
  105.          */
  106.         }
  107.  
  108.  
  109.  
  110.  
  111.  
  112.         public function addMessage(message:ChatFieldMessage):void
  113.         {
  114.  
  115.    
  116.  
  117.             if (!fromColor)
  118.  
  119.             {
  120.                 var colorString:String = "FFFFFF";
  121.                 if (!isNaN(getStyle("fromColor")))
  122.                 {
  123.                     colorString = Number(getStyle("fromColor")).toString(16);
  124.                 }
  125.                 fromColor = "0x" + colorString;
  126.                 colorString = "FFFFFF";
  127.                 if (!isNaN(getStyle("messageColor")))
  128.                 {
  129.                     colorString = Number(getStyle("messageColor")).toString(16);
  130.                 }
  131.                 messageColor = "0x" + colorString;
  132.                 fontSize = getStyle("fontSize");
  133.             }
  134.             if (useSameColors)
  135.             {
  136.                 message.fromColor = fromColor;
  137.                 message.messageColor = messageColor;
  138.             }
  139.             message.fromSize = fontSize;
  140.             message.messageSize = fontSize;
  141.             chatField.addLine(message);
  142.  
  143.  
  144.             controller.verticalScrollPosition = controller.getContentBounds().height + 5;
  145.  
  146.             //textDisplay.verticalScrollPosition=textDisplay.verticalScrollPosition+5;
  147.             //textFlowScrollWatcher.setForceDown(true);
  148.         }
  149.  
  150.         public function clear():void
  151.         {
  152.             chatField.clear();
  153.         }
  154.  
  155.         public function dispose():void
  156.         {
  157.  
  158.             _composerContext = null;
  159.             _emoticons = null;
  160.             controller = null;
  161.             chatField.dispose();
  162.             chatField = null;
  163.         }
  164.     }
  165. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement