Pessoal .. outro dia estava me perguntando ... pq nao criar um sistema .. como c fosse um desktop online ... e a resposta foi : PQ EH MTO DIFICIL ! aaaa ... e eu ando meio sem tempo hauehusahaue ... mas blz ... enfim ... surgiu a oportunidade aki na empresa onde eu trabalho para estudar e criar um prototipo para servir de base para outros sistemas ... e eu ñ pude deixar de aproveitar a oportunidade ... e brincar um pouco ! auehuaehuae ...
Ai eu fiz um esquema para o usuario utilizar o sistema como c fosse akeles ambientes q o linux tem ... ( Usuarios windows ñ tao acostumados ... mas quebra um galhão !! )... estou postando o codigo .. fiz em flex , mais p frente eu posto o prototipo q eu fiz ... com Java( Hibernate )+Flex ! vlw !!!
<?xml version="1.0" encoding="utf-8"?>
<mx:Application
xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
creationComplete="init();"
horizontalAlign="center"
verticalAlign="top"
width="100%"
height="100%"
paddingLeft="0" paddingRight="0" paddingBottom="0" paddingTop="0"
xmlns:flexmdi="flexmdi.containers.*"
backgroundImage="@Embed('./imagens/abstract2.jpg')"
>
<mx:Script>
<![CDATA[
import view.configuracao.cadastros.cadastrodaclassedeequipamento.CadastroClasseEquipamento;
import model.Usuario;
import mx.events.CloseEvent;
import mx.managers.PopUpManager;
import view.login.Login;
import view.configuracao.administrativo.cadastrodeusuario.CadastroUsuario;
import view.configuracao.administrativo.cadastrodetipodeusuario.CadastroTipoUsuario;
import flexmdi.managers.MDIManager;
import flash.utils.getTimer;
import mx.controls.Label;
import view.configuracao.administrativo.cadastrodeusuario.CadastroUsuario;
import view.configuracao.administrativo.cadastrodetipodeusuario.CadastroTipoUsuario;
import flexmdi.effects.effectsLib.MDIVistaEffects;
import flexmdi.containers.MDIWindow;
import mx.events.MenuEvent;
import flexmdi.containers.MDICanvas;
import mx.controls.TextInput;
import mx.controls.Text;
import mx.controls.Alert;
import mx.controls.Button;
import mx.collections.ArrayCollection;
import mx.controls.List;
import mx.containers.Canvas;
private const MIN_MASK:String = "00";
private const SEC_MASK:String = "00";
private const HR_MASK:String = "00";
private var ambienteAtual:MDICanvas;
private var qtdeAmbientes:int;
private var prefixoIdCanvas:String = "canvas";
private var prefixoIdBotao:String = "BTN_AMBIENTE";
public var iniciar:Class = Imagens.iniciar;
private var baseTimer:int;
private var timer:Timer = null;
private var LBL_HORA:Label = new Label();
public var usuarioLogado:Usuario = null;
private function init():void{
var login:Login = PopUpManager.createPopUp(this , Login , true) as Login;
disableAplicacao();
login.addEventListener(CloseEvent.CLOSE,loginCloseEvent,false,0,false);
PopUpManager.centerPopUp(login);
}
public function loginCloseEvent(evt:CloseEvent):void{
var login:Login = evt.currentTarget as Login;
this.usuarioLogado = login.usuarioLogado;
if (this.usuarioLogado != null){
initAfterLoginOk();
enableAplicacao();
}
}
private function disableAplicacao():void{
this.ACB_TASKBAR.visible = false;
this.canvasAmbientes.visible = false;
}
private function enableAplicacao():void{
this.ACB_TASKBAR.visible = true;
this.canvasAmbientes.visible = true;
}
private function initAfterLoginOk():void{
qtdeAmbientes = 1;
criaAmbientes();
ativaCanvas(1);
timer = new Timer(10);
timer.addEventListener(TimerEvent.TIMER, updateTimer);
timer.start();
}
public function updateTimer(event:TimerEvent):void {
var d:Date = new Date();
var min:String = (MIN_MASK + d.minutes).substr(-MIN_MASK.length);
var sec:String = (SEC_MASK + d.seconds).substr(-SEC_MASK.length);
var hr:String = (HR_MASK + d.hours).substr(-HR_MASK.length);
LBL_HORA.text = String(hr + ":" +min + ":" + sec );
}
private function criaAmbientes():void{
for(var indice:int = 1 ; indice <= qtdeAmbientes ; indice++ ){
var canvasNovo:MDICanvas = new MDICanvas();
var botaoAmbiente:Button = new Button();
var stringIndice:String = String(indice);
if (qtdeAmbientes > 1){
botaoAmbiente.id=prefixoIdBotao+stringIndice;
botaoAmbiente.label = stringIndice;
botaoAmbiente.addEventListener(MouseEvent.CLICK,onBtnAmbienteClick,false,0,false);
ACB_TASKBAR.addChild(botaoAmbiente);
}
canvasNovo.setVisible(false);
canvasNovo.id = prefixoIdCanvas+stringIndice;
canvasNovo.percentWidth = 100;
canvasNovo.percentHeight = 100;
canvasNovo.effectsLib = MDIVistaEffects;
canvasAmbientes.addChild(canvasNovo);
}
LBL_HORA.setStyle("color","#FFFFFF");
LBL_HORA.text = "00:00:00";
ACB_TASKBAR.addChild(LBL_HORA);
}
private function addTelaAmbienteSelecionado(objeto:DisplayObject):void{
var objetoProcurado:MDIWindow = MDIWindow(objeto);
var objetoLocalizado:MDIWindow = null;
for (var obj:Object in ambienteAtual.getChildren()){
var objMDI:MDIWindow = MDIWindow(ambienteAtual.getChildAt(int(obj)));
if (objetoProcurado.title == objMDI.title){
objetoLocalizado = objMDI;
}
}
if (objetoLocalizado == null){
ambienteAtual.windowManager.add(MDIWindow(objeto));
}else{
if (objetoLocalizado.minimized){
objetoLocalizado.restore();
objetoLocalizado.showControls = true;
}else{
objetoLocalizado.getFocus();
}
}
}
private function getCanvasById(id:String):MDICanvas{
for each (var childAtual:Object in canvasAmbientes.getChildren()){
if (MDICanvas(childAtual).id == id){
return MDICanvas(childAtual);
}
}
return null;
}
private function ativaCanvas(indice:int):void{
var canvasSelecionado:MDICanvas = getCanvasById(prefixoIdCanvas+String(indice));
if (canvasSelecionado != null){
for each (var canvasIndice:MDICanvas in canvasAmbientes.getChildren()){
if (canvasIndice.id != canvasSelecionado.id){
canvasIndice.setVisible(false);
}else{
ambienteAtual = canvasSelecionado;
canvasIndice.setVisible(true);
}
}
}
}
private function onBtnAmbienteClick(evt:Event):void{
var botaoClicado:Button = evt.currentTarget as Button;
var ambienteSelecionado:int = int(botaoClicado.id.replace(prefixoIdBotao,""));
ativaCanvas(ambienteSelecionado);
}
private function menuBarItemClick(event:MenuEvent):void
{
if (event.item.@data == "confAdmCadTipoUsuario"){
addTelaAmbienteSelecionado(new CadastroTipoUsuario());
}else if (event.item.@data == "confAdmCadUsuario"){
addTelaAmbienteSelecionado(new CadastroUsuario());
}else if (event.item.@data == "confCadCadClasseEquip"){
addTelaAmbienteSelecionado(new CadastroClasseEquipamento());
}
}
]]>
</mx:Script>
<mx:XMLList id="menuList">
<menuitem icon="iniciar" label="">
<menuitem label="Configuração">
<menuitem label="Administrativo">
<menuitem label="Cadastro de Usuários" data="confAdmCadUsuario"/>
</menuitem>
</menuitem>
</menuitem>
</mx:XMLList>
<mx:ApplicationControlBar id="ACB_TASKBAR" height="0%" width="100%">
<mx:MenuBar id="MB_MENU"
labelField="@label"
iconField="@icon"
cornerRadius="20"
dataProvider="{menuList}"
itemClick="menuBarItemClick(event);"
>
</mx:MenuBar>
<mx:Spacer width="100%" />
<mx:Image click="ambienteAtual.windowManager.tile(true)" source="imagens/titleiconpqn.png" scaleContent="true" autoLoad="true"/>
<mx:Image click="ambienteAtual.windowManager.cascade()" width="27" height="26.25" source="imagens/cascatapqn.png" scaleContent="true" autoLoad="true"/>
</mx:ApplicationControlBar>
<flexmdi:MDICanvas id="canvasAmbientes" height="100%" width="100%">
</flexmdi:MDICanvas>
</mx:Application>
Nenhum comentário:
Postar um comentário