⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 traderdesktop.mxml

📁 java 和flex的整合,主要是spring和flex的整合,不可多得啊
💻 MXML
字号:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" 
	applicationComplete="initApp()">

	<mx:Script>
		<![CDATA[

			import org.springframework.flex.samples.marketfeed.Stock;
			import mx.controls.Alert;
			import mx.collections.ArrayCollection;
			import mx.messaging.events.MessageEvent;
			import mx.messaging.Consumer;
	
			[Bindable]
			private var items:ArrayCollection;
	
			private var consumers:Object;		

			private var stockMap:Object;
			
			private function initApp():void
			{
				consumers = new Object();
				stockMap = new Object();
				items = new ArrayCollection();
				initializeWatchList(["IBM", "JBLU", "ADBE", "GE", "C"]);
			}
			
			private function deleteSymbol():void
			{
				var symbol:String = dg.selectedItem.symbol;
				unsubscribe(symbol);
				items.removeItemAt(dg.selectedIndex);
				delete stockMap[symbol];
			}
			
			public function initializeWatchList(list:Array):void
			{
				for (var i:int=0; i<list.length; i++)
				{
					addSymbol(list[i]);	
				}
			}
			
			private function addSymbol(symbol:String):void
			{
				if (symbol == null || symbol == "")
				{
					Alert.show("Cannot add an empty symbol");
					return;
				}
	
				symbol = symbol.toUpperCase();
				if (stockMap.hasOwnProperty(symbol))
				{
					Alert.show("Symbol '" + symbol + "' is already in the list");
					return;
				}
	
				var stock:Stock = new Stock();
				stock.symbol = symbol;
				stockMap[symbol] = stock;
				items.addItem(stock);
				subscribe(symbol);
			}
			
			private function subscribe(symbol:String):void
			{
				var consumer:Consumer = new Consumer();
				consumer.destination = "market-feed";
				consumer.subtopic = symbol;
				consumer.channelSet = cs;
				consumer.addEventListener(MessageEvent.MESSAGE, messageHandler);
				consumer.subscribe();
				consumers[symbol] = consumer;
			}
			
			private function unsubscribe(symbol:String):void
			{
				if (consumers[symbol])
				{
					var consumer:Consumer = consumers[symbol];
					consumer.removeEventListener(MessageEvent.MESSAGE, messageHandler);
					if (consumer.subscribed)
					{
						consumer.unsubscribe();
					}
					delete consumers[symbol];
				}
			}
	
			private function messageHandler(event:MessageEvent):void 
			{
				var changedStock:Stock = event.message.body as Stock;
				var stock:Stock = stockMap[changedStock.symbol];
				
				BackgroundColorRenderer.symbol = changedStock.symbol;
				
				if (stock)
				{
					stock.open = changedStock.open;
					stock.change = changedStock.change;
					stock.last = changedStock.last;
					stock.high = changedStock.high;
					stock.low = changedStock.low;
					stock.date = changedStock.date;
				}
	        }
			
			private function formatNumber(item:Object, column:DataGridColumn):String
			{
				return nf.format(item[column.dataField]);
			}
			
		
		]]>
	</mx:Script>

	<mx:ChannelSet id="cs">
		<!-- <mx:StreamingAMFChannel url="http://localhost:8080/messagebroker/streamingamf"/> -->
		<mx:AMFChannel url="http://localhost:8080/messagebroker/amflongpolling"/>
		<mx:AMFChannel url="http://localhost:8080/messagebroker/amfpolling"/>
	</mx:ChannelSet>
	
	<mx:NumberFormatter id="nf" precision="2"/>

	<mx:Panel title="Watch List" width="400" height="400">
		<mx:DataGrid id="dg" dataProvider="{items}" width="100%" height="100%">
			<mx:columns>
				<mx:DataGridColumn headerText="Symbol" dataField="symbol" width="80"/>
				<mx:DataGridColumn headerText="Open" dataField="open" labelFunction="formatNumber" textAlign="right" width="60"/>
				<mx:DataGridColumn headerText="Last" dataField="last" itemRenderer="BackgroundColorRenderer" labelFunction="formatNumber" textAlign="right" width="60"/>
				<mx:DataGridColumn headerText="Change" dataField="change" itemRenderer="ColorRenderer" labelFunction="formatNumber" textAlign="right" width="60"/>
				<mx:DataGridColumn headerText="High" dataField="high" labelFunction="formatNumber" textAlign="right" width="60"/>
				<mx:DataGridColumn headerText="Low" dataField="low" labelFunction="formatNumber" textAlign="right" width="60"/>
			</mx:columns>
		</mx:DataGrid>
		<mx:ControlBar>
			<mx:VBox width="100%">
				<mx:Text width="100%">
					<mx:text>
						The stocks available in the sample feed are: XOM, WMT, GM, CVX, COP, GE, C, AIG, GOOG, ADBE, JBLU, COKE, GENZ, YHOO, IBM, BA, SAP, MOT, VZ, MCD.
					</mx:text>
				</mx:Text>
				<mx:HBox width="100%">
					<mx:TextInput id="symbol" enter="addSymbol(symbol.text);symbol.text='';" width="50"/>
					<mx:Button label="Add Symbol" click="addSymbol(symbol.text);symbol.text='';"/>
					<mx:Spacer width="100%"/>
					<mx:Button label="Delete Symbol" click="deleteSymbol()" enabled="{dg.selectedItem}"/>
				</mx:HBox>
			</mx:VBox>
		</mx:ControlBar>
	</mx:Panel>
	
	
</mx:Application>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -