Tuesday, August 25, 2009

Sample Cocomo application


Sample cocomo application which I tried, You need to have a cocomo dev id.

You could register here...https://cocomo.acrobat.com/

View demo

Simple Decision Support System

A simple decision support system in flex using mvc framework.

This involves a simple book store filtered by price and rating. A simple search facility is also provided.




View Demo








The other decision support system includes

1) Byron Bay Accommodation : This is a simple decision support system aimed at helping people get around the complexities of choosing amongst a wide variety of accommodation options This type of basic architecture can be used to locate relevant sets from any information source Notice that the user can approach their decision making task from any angle making it unnecessary to be channeled into a fixed approach.



View Online












2) Flex Store This is a demo app created by Adobe Choosing a cell phone is a daunting task for anyone who has a definite preference around required features Imagine looking through screeds of pamphlets to short list the phone with the feature set required. Of course the phones can be substituted with information of any sort. Documents, Images -- anything.



View Online













3) Harley Davidson Motor Cycle Configurator This is a decision support system set up as a configurator. Try it out to chose the elements which make up a motorcycle.etc. This sort of decision support tool can be used to try out clothing, fit out a building, create complex documents
etc



Click the 'Launch the customizer' button View online














4) Volkswagen product selector This is a multidmensional product selector which can select forwards from a set of selectors on the left hand panel, but also select backwards You can select a car in the used car range then find out about all the dealers who stock that car.


View Online













5) Sony Ericsson Product selector This allows the user to select amongst a range of product
sets using customised decision selectors for each product set. This decision support component can also help compare the chosen items


View Online














6) Vizzl This is a decision support system still under development. There may be some bugs in it ! The idea is that it is a categorized search facility which can be pointed at any major data source and then use successive approximation to locate the sought after data items


View Online

Monday, August 17, 2009

My Site is down

My Personal site is down http://tekkies.premapix.com/. I am working with the domain space provider to get it back and live. Some of the links in this blog may not work till then.. I shall try to get it back ASAP and this time with source code view enabled :-). Thanks for your continuous support and I apologize for the inconvenience caused.

Flex and RIA enthusiast..

Saturday, June 27, 2009

Image Capture in AIR

Image Capture is made easy in AIR. This simple App can capture images from Web as well as the clipboard.  It supports partial Capture as well. This uses Object Handles for partial capture.

capture

Capturing Images from the Clipboard

var g:Clipboard = Clipboard.generalClipboard;

    //if the Image format is not correct
    if( !g.hasFormat( ClipboardFormats.BITMAP_FORMAT)){
        mx.controls.Alert.show("No Images on the clipboard!");
    }

    //Drawing Images
    var bd2:BitmapData;
    bd2 = g.getData( ClipboardFormats.BITMAP_FORMAT ) as BitmapData;
    myImage2.source = new Bitmap( bd2 );

Entire Source code

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"
    xmlns:local="*" backgroundAlpha="1" backgroundColor="0xffccff"
    width="884" height="900" xmlns:objecthandles="com.roguedevelopment.objecthandles.*" >
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.graphics.codec.PNGEncoder;

//Image Storage
private var bd:BitmapData;

//Initialization
private function init():void{
}

//Save the Whole page
private function getPage():void{
    var w:int;
    var h:int;
    if( radiogroup1.selectedValue == "0" ){

        //Web Save Image
        w = int(myHtmlW.text);
        h = int(myHtmlH.text);
        bd = new BitmapData( w , h );
        bd.draw( myHtml );
    }else{

        //Save the Image clip
        w = myImage2.width;
        h = myImage2.height;
        bd = new BitmapData( w , h );
        bd.draw( myImage2 );
    }

    //View Images for writing
    myImage.source = new Bitmap( bd );

    //Enable Save button
    mySaveBtn.enabled = true;
    finishTxt.visible = false;
}

//Save part
private function getCap():void{

    //Image Available
    var w:int = myTest.width;
    var h:int = myTest.height;
    bd = new BitmapData( w , h );

    //Because of the Images Size, getting the partial width and height
    var rec:Rectangle = new Rectangle();
    rec.width = w;
    rec.height = h;
    var mat:Matrix = new Matrix();
    mat.tx = -myTest.x;
    mat.ty = -myTest.y;
//    mat.scale(mySlider.value,mySlider.value);
//    mat.a = mySlider.value;
//    mat.d = mySlider.value;

    if( radiogroup1.selectedValue == "0" ){

        //Web Save Image
        bd.draw( myHtml , mat , null , null , rec );
    }else{

        //Save the Image clip
        bd.draw( myImage2 , mat , null , null , rec );
    }

    //View Images for writing
    myImage.source = new Bitmap( bd );
    //Save Button Enabled   
    mySaveBtn.enabled = true;
    finishTxt.visible = false;
}

//Save Images
private function saveImage():void{

    //Determining the file name
    var fname:String = new String();
    var d:Date = new Date();
    fname = "" + d.getFullYear() + "Year"+(d.getMonth()+1) + "Month"+d.getDay()+"Day"+d.getHours() +"Hours"+ d.getMinutes() + "Min" + d.getSeconds() + "Sec.png";

    //Save File
    var png:PNGEncoder = new PNGEncoder();
    var bta:ByteArray = png.encode(bd);
    var save_file:File = File.desktopDirectory;
    save_file = save_file.resolvePath(fname);
    var fs:FileStream = new FileStream();
    fs.open(save_file,FileMode.UPDATE);
    fs.writeBytes(bta, 0, bta.length);
    fs.close();

    //File Saved, Disable Save Button
    mySaveBtn.enabled = false;
    finishTxt.visible = true;
}

//Get Images from the clipboard
private function getClipbord():void{
    var g:Clipboard = Clipboard.generalClipboard;

    //if the Image format is not correct
    if( !g.hasFormat( ClipboardFormats.BITMAP_FORMAT)){
        mx.controls.Alert.show("No Images on the clipboard!");
    }

    //Drawing Images
    var bd2:BitmapData;
    bd2 = g.getData( ClipboardFormats.BITMAP_FORMAT ) as BitmapData;
    myImage2.source = new Bitmap( bd2 );

}

]]>
</mx:Script>
<mx:Style>
ApplicationControlBar {
   highlightAlphas: 1, 0.3;
   fillAlphas: 0.64, 0.24;
   fillColors: #ffffff, #cc00ff;
   backgroundAlpha: 0.67;
   cornerRadius: 5;
   dropShadowEnabled: true;
   shadowDistance: 1;
}
</mx:Style>

<mx:Label x="10" y="202" text="{radiogroup1.selection.label}" fontSize="20"/>
<mx:Button x="83" y="207" label="←" click="{myHtml.historyBack()}" visible="{!Boolean(radiogroup1.selectedValue)}"/>
<mx:Button x="131" y="207" label="→" click="{myHtml.historyForward()}" visible="{!Boolean(radiogroup1.selectedValue)}"/>
<mx:Image id="myImage2" x="10" y="241"  visible="{Boolean(radiogroup1.selectedValue)}"
    />
<mx:Canvas x="10" y="241" height="{int(myHtmlH.text)}" width="{int(myHtmlW.text)}">
    <mx:HTML id="myHtml" x="2.5" y="1" width="100%" height="100%"  visible="{!Boolean(radiogroup1.selectedValue)}"
        verticalScrollPolicy="off" horizontalScrollPolicy="off"/>
    <objecthandles:ObjectHandles id="myTest" allowHResize="false" allowVResize="false" allowHMove="true"
        borderStyle="solid" borderThickness="2" borderColor="0xff0000"
        height="{int(myTestH.text)}" width="{int(myTestW.text)}" visible="{myTestV.selected}">
        <mx:Canvas backgroundColor="0xff0000" alpha="0.3" width="100%" height="100%" />
    </objecthandles:ObjectHandles>
</mx:Canvas>

<mx:RadioButtonGroup id="radiogroup1"/>
<mx:ViewStack x="11" y="48" id="viewstack1" width="378" height="150" selectedIndex="{int(radiogroup1.selectedValue)}" backgroundColor="0xe1ffe6">
    <mx:Canvas label="web" width="100%" height="100%">
        <mx:Label x="27" y="46" text="URL"/>
        <mx:Label x="27" y="72" text="Size Aspect"/>
        <mx:TextInput id="myUrlTxt" x="127" y="44" width="188" text="http://google.com" enter="{myHtml.location=myUrlTxt.text}" />
        <mx:TextInput id="myHtmlH" x="127" y="70" width="64" text="600"/>
        <mx:TextInput id="myHtmlW" x="218" y="70" width="64" text="800"/>
        <mx:Label x="199" y="72" text="x"/>
        <mx:Button x="323" y="44" label="GO" click="{myHtml.location=myUrlTxt.text}"/>
    </mx:Canvas>
    <mx:Canvas label="clip" width="100%" height="100%">
        <mx:Button x="111.5" y="59" label="Read From the Clipboard" click="getClipbord()"/>
    </mx:Canvas>
</mx:ViewStack>

<mx:RadioButtonGroup id="radiogroup2"/>
<mx:ViewStack x="400" y="49" id="viewstack2" width="257" height="150" selectedIndex="{int(radiogroup2.selectedValue)}" backgroundColor="0xfff6db">
    <mx:Canvas label="View 1" width="100%" height="100%">
        <mx:Button id="myButton0" x="75.5" y="59" label="Page Capture" click="getPage()"/>
    </mx:Canvas>
    <mx:Canvas label="a" width="100%" height="100%">
        <mx:Button id="myButton" x="81.5" y="92" label="Capture part" click="getCap()"/>
        <mx:TextInput id="myTestH" x="81.5" y="23" width="64" text="200"/>
        <mx:TextInput id="myTestW" x="172.5" y="23" width="64" text="300"/>
        <mx:Label x="153.5" y="25" text="x"/>
        <mx:Label x="20.5" y="25" text="Size Aspect"/>
        <mx:CheckBox id="myTestV" x="81.5" y="53" label="View" selected="false"/>
    </mx:Canvas>
</mx:ViewStack>

<mx:Canvas x="667" y="49" width="215" height="150" backgroundColor="0xe1e3ff">
    <mx:Image id="myImage" x="10" y="10" width="129" height="100"/>
    <mx:Button id="mySaveBtn" label="Save Image" enabled="false" click="saveImage()" x="108" y="118"/>
    <mx:TextInput id="finishTxt" x="46" y="119" text="Save Successfull" visible="false" width="55" />
</mx:Canvas>

<mx:ApplicationControlBar x="10" y="11" width="382">
    <mx:RadioButton label="Web" value="0" groupName="radiogroup1" selected="true"/>
    <mx:RadioButton label="Clipboard" value="1" groupName="radiogroup1"/>
</mx:ApplicationControlBar>
<mx:ApplicationControlBar x="400" y="11" width="259">
    <mx:RadioButton label="Capture Whole" value="0" groupName="radiogroup2" selected="true"/>
    <mx:RadioButton label="Capture part" value="1" groupName="radiogroup2"/>
</mx:ApplicationControlBar>
<mx:ApplicationControlBar x="667" y="11" width="215" barColor="0x46458a" height="33">
    <mx:Label text="Output Image"/>
</mx:ApplicationControlBar>
</mx:WindowedApplication>

Sunday, June 14, 2009

Sticky Notes App

A Simple Sticky notes application in AIR...

The data is in a SharedObject.

SQLITE is another option which is really interesting.

The panel that can be dragged,resized is SuperPanelPlus


























Download it here...

Simple HTML Browser in AIR

A Simple HTML Browser in AIR, with the History support.

Handling of AIR's HTML Component is simple...

location = myurl jumps to a page,

historyBack()returns to the previous page

historyForward()goes to the next page
















Download the AIR file

SourceCode For HTML Browser

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
    xmlns:mx="http://www.adobe.com/2006/mxml"
    layout="vertical" width="600" height="500"
    showStatusBar="false"
    backgroundColor="0x000000" backgroundAlpha="0.5"
    >
<mx:Script>
<![CDATA[

[Bindable]private var hisArr:Array = new Array();
private function setHistory():void{
    hisArr = new Array();
    var len:int = myHTML.historyLength;
    while( len -- ){
        hisArr[len] = myHTML.getHistoryAt(len);
    }
}
]]>
</mx:Script>

<mx:HBox width="100%">
    <mx:TextInput id="myURL" text="http://www.linkedin.com"
        width="100%"
        enter="{myHTML.location = myURL.text;}"/>   
        <mx:Button label="GO!" click="{ myHTML.location = myURL.text; }"/>
        <mx:Button label="Back" click="{ myHTML.historyBack() }"/>
        <mx:Button label="Forward" click="{ myHTML.historyForward() }"/>
</mx:HBox>

<mx:HBox width="100%" height="100%">
    <mx:DataGrid id="dg" dataProvider="{hisArr}" width="100" height="100%"
        itemClick="{myHTML.historyPosition = dg.selectedIndex}">
        <mx:columns>
            <mx:DataGridColumn headerText="Title" dataField="title"/>
            <mx:DataGridColumn headerText="URL" dataField="url" visible="false"/>
        </mx:columns>
    </mx:DataGrid>
    <mx:HTML id="myHTML" width="100%" height="100%" complete="setHistory()"/>   
</mx:HBox>

</mx:WindowedApplication>

Tuesday, September 30, 2008