tag:blogger.com,1999:blog-12986193170571744662024-03-18T05:29:39.474-07:00CSS Corp LabsResearch Unit of CSS CorpCSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.comBlogger55125tag:blogger.com,1999:blog-1298619317057174466.post-20631706842502710772012-10-04T05:11:00.000-07:002012-11-14T20:44:47.594-08:00Android custom Listview<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="line-height: 150%; margin-bottom: 0cm; text-align: right;">
<span class="Apple-style-span" style="font-family: inherit;">- Kalimuthu Regaswamy</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Most
of android mobile applications has a listview that displays something. And
its been a practise by all android developes to add a view of their
taste, just by customizing the listview to what required.
This blog explains how to create a custom listview in android mobile. I hope this blog will help any android application builders who need to customize listview. The view I am trying out here has a image, two textview and a multiple choice option. </span><br />
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY5y5kDL4GAFXzy7WMPeq5tu8CjSktMHPQYwMt08xOy6xFoLKexac4wp7JFJRhfFLXHX2hY_7QVC9oWz3hvGEknlXw1BlSfoKfyCZT5ea3lyh0RVkYwTfL_heCULtwkcR_TrVtuJjNunbh/s1600/customlist.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiY5y5kDL4GAFXzy7WMPeq5tu8CjSktMHPQYwMt08xOy6xFoLKexac4wp7JFJRhfFLXHX2hY_7QVC9oWz3hvGEknlXw1BlSfoKfyCZT5ea3lyh0RVkYwTfL_heCULtwkcR_TrVtuJjNunbh/s400/customlist.png" width="240" /></a></div>
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Designing Listview:</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: teal;"><</span><span style="color: #3f7f7f;">RelativeLayout</span>
<span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"http://schemas.android.com/apk/res/android"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">xmlns:tools</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"http://schemas.android.com/tools"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"match_parent"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"match_parent"</i></span>
<span style="color: teal;">></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: teal;"><</span><span style="color: #3f7f7f;">ListView</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@id/android:list"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"fill_parent"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"394dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:layout_margin</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"5dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:layout_weight</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"0.95"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:cacheColorHint</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"#0000"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:clipToPadding</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"true"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:dividerHeight</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"1px"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:scrollbars</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"none"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #7f007f;">android:soundEffectsEnabled</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"true"</i></span>
<span style="color: teal;">></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: teal;"></</span><span style="color: #3f7f7f;">ListView</span><span style="color: teal;">></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: teal;"></</span><span style="color: #3f7f7f;">RelativeLayout</span><span style="color: teal;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Designing custom cell:</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: teal;"><?</span><span style="color: #3f7f7f;">xml</span>
<span style="color: #7f007f;">version</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"1.0"</i></span>
<span style="color: #7f007f;">encoding</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"utf-8"</i></span><span style="color: teal;">?></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: teal;"><</span><span style="color: #3f7f7f;">RelativeLayout</span>
<span style="color: #7f007f;">xmlns:android</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"http://schemas.android.com/apk/res/android"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"match_parent"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"match_parent"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:orientation</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"vertical"</i></span>
<span style="color: teal;">></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: teal;"><</span><span style="color: #3f7f7f;">ImageView</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/Listimage"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"96px"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"96px"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_alignParentLeft</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"true"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_margin</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"1dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_marginTop</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"21dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:background</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@drawable/ic_launcher"</i></span>
<span style="color: teal;">/></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: teal;"><</span><span style="color: #3f7f7f;">TextView</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/name"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"50dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"wrap_content"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_alignParentRight</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"true"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_marginRight</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"119dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_toRightOf</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/Listimage"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:ellipsize</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"end"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"TextView"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"20px"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:textStyle</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"bold"</i></span>
<span style="color: teal;">/></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: teal;"><</span><span style="color: #3f7f7f;">TextView</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/no"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"wrap_content"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"wrap_content"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_alignBottom</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/Listimage"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_alignLeft</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/name"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_marginBottom</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"14dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_marginLeft</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"16dp"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:text</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"TextView"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:textSize</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"15px"</i></span>
<span style="color: teal;">/></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: teal;"><</span><span style="color: #3f7f7f;">CheckBox</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:id</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/check"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_width</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"wrap_content"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_height</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"wrap_content"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_alignBottom</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"@+id/no"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f007f;">android:layout_alignParentRight</span><span style="color: black;">=</span><span style="color: #2a00ff;"><i>"true"</i></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: teal; font-family: 'Courier New', Courier, monospace;">/></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: teal;"></</span><span style="color: #3f7f7f;">RelativeLayout</span><span style="color: teal;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<b><span class="Apple-style-span" style="font-family: inherit;">Creating pojo class:</span></b></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">The pojo class here
gets and sets the needed objects
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>class</b></span><span style="color: black;">
Pojo {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String </span><span style="color: #0000c0;">name</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String </span><span style="color: #0000c0;">no</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String </span><span style="color: #0000c0;">desc</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String </span><span style="color: #0000c0;">post</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>private</b></span><span style="color: black;">
Boolean </span><span style="color: #0000c0;">isSelected</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
Boolean getIsSelected() {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> return</b></span><span style="color: black;">
</span><span style="color: #0000c0;">isSelected</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
setIsSelected(Boolean isSelected) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> this</b></span><span style="color: black;">.</span><span style="color: #0000c0;">isSelected</span><span style="color: black;">
= isSelected;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String getName() {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> return</b></span><span style="color: black;">
</span><span style="color: #0000c0;">name</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
setName(String name) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> this</b></span><span style="color: black;">.</span><span style="color: #0000c0;">name</span><span style="color: black;">
= name;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String getNo() {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> return</b></span><span style="color: black;">
</span><span style="color: #0000c0;">no</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
setNo(String no) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> this</b></span><span style="color: black;">.</span><span style="color: #0000c0;">no</span><span style="color: black;">
= no;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String getDesc() {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> return</b></span><span style="color: black;">
</span><span style="color: #0000c0;">desc</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
setDesc(String desc) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> this</b></span><span style="color: black;">.</span><span style="color: #0000c0;">desc</span><span style="color: black;">
= desc;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
String getPost() {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> return</b></span><span style="color: black;">
</span><span style="color: #0000c0;">post</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
setPost(String post) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> this</b></span><span style="color: black;">.</span><span style="color: #0000c0;">post</span><span style="color: black;">
= post;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> } </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<div style="text-align: left;">
<b><span class="Apple-style-span" style="font-family: inherit;">Coding list
adapter :</span></b><span class="Apple-style-span" style="font-family: inherit;">I have
written a list adapter which actullay adds the custom cells designed
into the listview.<span style="color: #313131;">
Adapter, here is the bridge between a ListView </span><span style="color: #313131;">and the data that backs the list. The ListView can display any data
provided that it is wrapped in a ListAdapter.</span></span></div>
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>class</b></span><span style="color: black;">
MyCustomArrayAdapter </span><span style="color: #7f0055;"><b>extends</b></span><span style="color: black;">
ArrayAdapter<Pojo> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> private</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>final</b></span><span style="color: black;">
List<Pojo> </span><span style="color: #0000c0;">list</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> private</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>final</b></span><span style="color: black;">
Activity </span><span style="color: #0000c0;">context</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> ViewHolder
</span><span style="color: #0000c0;">viewHolder</span><span style="color: black;">=</span><span style="color: #7f0055;"><b>null</b></span><span style="color: black;">
;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> public</b></span><span style="color: black;">
MyCustomArrayAdapter(Activity context, List<Pojo> list) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> super</b></span><span style="color: black;">(context,
R.layout.</span><span style="color: #0000c0;"><i>customlist</i></span><span style="color: black;">,
list);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> this</b></span><span style="color: black;">.</span><span style="color: #0000c0;">context</span><span style="color: black;">
= context;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> this</b></span><span style="color: black;">.</span><span style="color: #0000c0;">list</span><span style="color: black;">
= list;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>static</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>class</b></span><span style="color: black;">
ViewHolder {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> protected</b></span><span style="color: black;">
TextView </span><span style="color: #0000c0;">name</span><span style="color: black;">,</span><span style="color: #0000c0;">no</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> protected</b></span><span style="color: black;">
ImageView </span><span style="color: #0000c0;">image</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> protected</b></span><span style="color: black;">
CheckBox </span><span style="color: #0000c0;">checkbox</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #646464;">@Override</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
View getView(</span><span style="color: #7f0055;"><b>final</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>int</b></span><span style="color: black;">
position, View convertView, ViewGroup parent) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> View
view = </span><span style="color: #7f0055;"><b>null</b></span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> if</b></span><span style="color: black;">
(convertView == </span><span style="color: #7f0055;"><b>null</b></span><span style="color: black;">)
{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> LayoutInflater
inflator = </span><span style="color: #0000c0;">context</span><span style="color: black;">.getLayoutInflater();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> view
= inflator.inflate(R.layout.</span><span style="color: #0000c0;"><i>customlist</i></span><span style="color: black;">,
</span><span style="color: #7f0055;"><b>null</b></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">
= </span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
ViewHolder();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">name</span><span style="color: black;">
= (TextView) view.findViewById(R.id.</span><span style="color: #0000c0;"><i>name</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">name</span><span style="color: black;">.setTextColor(Color.</span><span style="color: #0000c0;"><i>BLACK</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">name</span><span style="color: black;">.setEllipsize(TruncateAt.</span><span style="color: #0000c0;"><i>MIDDLE</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">no</span><span style="color: black;">
= (TextView) view.findViewById(R.id.</span><span style="color: #0000c0;"><i>no</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">no</span><span style="color: black;">.setTextColor(Color.</span><span style="color: #0000c0;"><i>BLACK</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">image</span><span style="color: black;">
= (ImageView) </span></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><span style="color: black;"> view.findViewById(R.id.</span><span style="color: #0000c0;"><i>Listimage</i></span><span style="color: black;">);</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">name</span><span style="color: black;">.setText(</span><span style="color: #0000c0;">list</span><span style="color: black;">.get(position).getName());</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">no</span><span style="color: black;">.setText(</span><span style="color: #0000c0;">list</span><span style="color: black;">.get(position).getNo());</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">checkbox</span><span style="color: black;">
=(CheckBox) view.findViewById(R.id.</span><span style="color: #0000c0;"><i>check</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">checkbox</span></span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">.setOnCheckedChangeListener(</span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: black;">CompoundButton.OnCheckedChangeListener() {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
onCheckedChanged(CompoundButton buttonView,</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> boolean</b></span><span style="color: black;">
isChecked) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> Pojo
element = (Pojo) </span><span style="color: #0000c0;">viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">checkbox</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> .getTag();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> element.setIsSelected(buttonView.isChecked());</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> });</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">image</span><span style="color: black;">.setBackgroundResource(R.drawable.</span><span style="color: #0000c0;"><i>ic_launcher</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> viewHolder</span><span style="color: black;">.</span><span style="color: #0000c0;">checkbox</span><span style="color: black;">.setTag(</span><span style="color: #0000c0;">list</span><span style="color: black;">.get(position));</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> }
</span><span style="color: #7f0055;"><b>else</b></span><span style="color: black;">
{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> view
= convertView;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> ((ViewHolder) </span></span><br />
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><span style="color: black;"> view.getTag()).</span><span style="color: #0000c0;">checkbox</span><span style="color: black;">.setTag(</span><span style="color: #0000c0;">list</span><span style="color: black;">.get(position));</span> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> return</b></span><span style="color: black;">
view;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">} </span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<b><span class="Apple-style-span" style="font-family: inherit;">Main activity
class:</span></b></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">This is where the
list is loaded. Here I have replaced the default array adapter with
the custom adapter.</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>class</b></span><span style="color: black;">
MainActivity </span><span style="color: #7f0055;"><b>extends</b></span><span style="color: black;">
ListActivity {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #646464;">@Override</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
onCreate(Bundle savedInstanceState) {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> super</b></span><span style="color: black;">.onCreate(savedInstanceState);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> setContentView(R.layout.<span style="color: #0000c0;"><i>activity_main</i></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> ArrayAdapter<Pojo>
adapter = <span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
MyCustomArrayAdapter(</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> MainActivity.</span><span style="color: #7f0055;"><b>this</b></span><span style="color: black;">,
getData());</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> setListAdapter(adapter);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
}</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #7f0055;"><b>public</b></span><span style="color: black;">
List<Pojo> getData(){</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> List<Pojo> addList
=<span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
ArrayList<Pojo>();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> Pojo objectPojo=<span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
Pojo();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setName(<span style="color: #2a00ff;">"muthu"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setNo(<span style="color: #2a00ff;">"1234"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setDesc(<span style="color: #2a00ff;">"android
"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setPost(<span style="color: #2a00ff;">"Developer"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setIsSelected(<span style="color: #7f0055;"><b>false</b></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> addList.add(objectPojo);</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo=<span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
Pojo();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setName(<span style="color: #2a00ff;">"kali"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setNo(<span style="color: #2a00ff;">"3456"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setDesc(<span style="color: #2a00ff;">"iPhone
"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setPost(<span style="color: #2a00ff;">"Developer"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setIsSelected(<span style="color: #7f0055;"><b>false</b></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> addList.add(objectPojo);</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo=<span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
Pojo();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setName(<span style="color: #2a00ff;">"arasu"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setNo(<span style="color: #2a00ff;">"5678"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setDesc(<span style="color: #2a00ff;">"windows
"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setPost(<span style="color: #2a00ff;">"Developer"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setIsSelected(<span style="color: #7f0055;"><b>false</b></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> addList.add(objectPojo);</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo=<span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
Pojo();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setName(<span style="color: #2a00ff;">"anbu"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setNo(<span style="color: #2a00ff;">"8901"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setDesc(<span style="color: #2a00ff;">"mac
"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setPost(<span style="color: #2a00ff;">"Developer"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> objectPojo.setIsSelected(<span style="color: #7f0055;"><b>false</b></span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> addList.add(objectPojo);</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> return</b></span><span style="color: black;">
addList;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Android developers can
just copy and paste the codes to get the listview customized as shown above. </span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
</div>
CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com212tag:blogger.com,1999:blog-1298619317057174466.post-61023042736253955262012-10-04T00:02:00.002-07:002012-11-14T20:39:57.837-08:00Camera integration in iPhone<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="line-height: 150%; margin-bottom: 0cm; text-align: right;">
<span class="Apple-style-span" style="font-family: inherit;">- Rashid Khaleefa</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<b><span class="Apple-style-span" style="font-family: inherit;">Overview:</span></b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Blog
on how to integrate camera into iPhone application.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">You
can easily include camera feature into any ios application provided
the device has a camera support, and you make use of the
imagePickerController of apple.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<b><span class="Apple-style-span" style="font-family: inherit;">Camera
integration:</span></b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">You
have to create a secondary view controller for managing the overlap
view to the camera.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">This
customises the way how the camera screen should apper once camera is
initiated from your application.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Use
the apples imagepickerController to pic the image snaped.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Creating
overlayViewController</span></div>
<ol>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Declare
the needed controlls in .h file</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Implement
those in .m</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Include
the UIImagePickerControllerDelegate
</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Create
needed delegates for your overlayViewController</span></div>
</li>
</ol>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">A
Sample overlay having buttons <b>takepicture</b> button and <b>done</b>
button with actions <b>takePhoto</b>, <b>close</b> respectively for
those. Also the delegate methods <b>didTakePicture</b>, the method
where you get the snaped picture and <b>didFinshWithCamera</b> that
can be used to perform any action once you are done with camera.
</span></div>
<div style="margin-bottom: 0cm;">
</div>
<div style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">The .h
file of <b>overlayViewController:</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><b><br /></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">@protocol</span><span style="color: black;">
</span><span style="color: #3f6e74;">OverlayViewControllerDelegate</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">@interface</span><span style="color: black;">
OverlayViewController : </span><span style="color: #5c2699;">UIViewController</span><span style="color: black;">
<</span><span style="color: #5c2699;">UINavigationControllerDelegate</span><span style="color: black;">,
</span><span style="color: #5c2699;">UIImagePickerControllerDelegate</span><span style="color: black;">></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">id</span><span style="color: black;">
<</span><span style="color: #3f6e74;">OverlayViewControllerDelegate</span><span style="color: black;">>
delegate;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #5c2699;">UIImagePickerController</span><span style="color: black;">
*imagePickerController;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: #aa0d91;"><span style="font-family: 'Courier New', Courier, monospace;">@private</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #5c2699;">UIBarButtonItem</span><span style="color: black;">
*takePictureButton;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #5c2699;">UIBarButtonItem</span><span style="color: black;">
*cancelButton;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">}
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">@property</span><span style="color: black;">
(</span><span style="color: #aa0d91;">nonatomic</span><span style="color: black;">,
</span><span style="color: #aa0d91;">assign</span><span style="color: black;">)
</span><span style="color: #aa0d91;">id</span><span style="color: black;">
<</span><span style="color: #3f6e74;">OverlayViewControllerDelegate</span><span style="color: black;">>
delegate;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">@property</span><span style="color: black;">
(</span><span style="color: #aa0d91;">nonatomic</span><span style="color: black;">,
</span><span style="color: #aa0d91;">retain</span><span style="color: black;">)
</span><span style="color: #5c2699;">UIImagePickerController</span><span style="color: black;">
*imagePickerController;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">@property</span><span style="color: black;">
(</span><span style="color: #aa0d91;">nonatomic</span><span style="color: black;">,
</span><span style="color: #aa0d91;">retain</span><span style="color: black;">)
</span><span style="color: #aa0d91;">IBOutlet</span><span style="color: black;">
</span><span style="color: #5c2699;">UIBarButtonItem</span><span style="color: black;">
*takePictureButton;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">@property</span><span style="color: black;">
(</span><span style="color: #aa0d91;">nonatomic</span><span style="color: black;">,
</span><span style="color: #aa0d91;">retain</span><span style="color: black;">)
</span><span style="color: #aa0d91;">IBOutlet</span><span style="color: black;">
</span><span style="color: #5c2699;">UIBarButtonItem</span><span style="color: black;">
*cancelButton;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)setupImagePicker:(</span><span style="color: #5c2699;">UIImagePickerControllerSourceType</span><span style="color: black;">)sourceType;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: #007400;"><span style="font-family: 'Courier New', Courier, monospace;">//
camera page (overlay view)</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">IBAction</span><span style="color: black;">)done:(</span><span style="color: #aa0d91;">id</span><span style="color: black;">)sender;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">IBAction</span><span style="color: black;">)takePhoto:(</span><span style="color: #aa0d91;">id</span><span style="color: black;">)sender;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: #aa0d91;"><span style="font-family: 'Courier New', Courier, monospace;">@end</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">@protocol</span><span style="color: black;">
OverlayViewControllerDelegate</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)didTakePicture:(</span><span style="color: #5c2699;">UIImage</span><span style="color: black;">
*)picture;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)didFinishWithCamera;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: #aa0d91;"><span style="font-family: 'Courier New', Courier, monospace;">@end</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Now in
you .m file, Initiate the imagePickerController and map its delegate</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">
= [[[</span><span style="color: #5c2699;">UIImagePickerController</span><span style="color: black;">
</span><span style="color: #2e0d6e;">alloc</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">init</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">autorelease</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">.</span><span style="color: #5c2699;">delegate</span><span style="color: black;">
= </span><span style="color: #aa0d91;">self</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)setupImagePicker:(</span><span style="color: #5c2699;">UIImagePickerControllerSourceType</span><span style="color: black;">)sourceType</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2e0d6e;">NSLog</span>(<span style="color: #c41a16;">@"enters
setupImagePicker"</span>);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">.</span><span style="color: #5c2699;">sourceType</span><span style="color: black;">
= sourceType;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">if</span><span style="color: black;">
(sourceType == </span><span style="color: #2e0d6e;">UIImagePickerControllerSourceTypeCamera</span><span style="color: black;">)</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
{</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #007400;">//
user wants to use the camera interface</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #007400;">//</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">.</span><span style="color: #5c2699;">showsCameraControls</span><span style="color: black;">
= </span><span style="color: #aa0d91;">NO</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">if</span><span style="color: black;">
([[</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">.</span><span style="color: #5c2699;">cameraOverlayView</span><span style="color: black;">
</span><span style="color: #2e0d6e;">subviews</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">count</span><span style="color: black;">]
== </span><span style="color: #1c00cf;">0</span><span style="color: black;">)</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
{</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #007400;">//
setup your custom overlay view for the camera</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #007400;">//</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #007400;">//
ensure that your custom view's frame fits within the parent frame</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #5c2699;">CGRect</span><span style="color: black;">
overlayViewFrame =
</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">.</span><span style="color: #5c2699;">cameraOverlayView</span><span style="color: black;">.</span><span style="color: #5c2699;">frame</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #5c2699;">CGRect</span><span style="color: black;">
newFrame = </span><span style="color: #2e0d6e;">CGRectMake</span><span style="color: black;">(</span><span style="color: #1c00cf;">0.0</span><span style="color: black;">,</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #2e0d6e;">CGRectGetHeight</span><span style="color: black;">(overlayViewFrame)
-</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #5c2699;">view</span><span style="color: black;">.</span><span style="color: #5c2699;">frame</span><span style="color: black;">.</span><span style="color: #5c2699;">size</span><span style="color: black;">.</span><span style="color: #5c2699;">height</span><span style="color: black;">
- </span><span style="color: #1c00cf;">10.0</span><span style="color: black;">,</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #2e0d6e;">CGRectGetWidth</span><span style="color: black;">(overlayViewFrame),</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #5c2699;">view</span><span style="color: black;">.</span><span style="color: #5c2699;">frame</span><span style="color: black;">.</span><span style="color: #5c2699;">size</span><span style="color: black;">.</span><span style="color: #5c2699;">height</span><span style="color: black;">
+ </span><span style="color: #1c00cf;">10.0</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #5c2699;">view</span><span style="color: black;">.</span><span style="color: #5c2699;">frame</span><span style="color: black;">
= newFrame;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">.</span><span style="color: #5c2699;">cameraOverlayView</span><span style="color: black;">
</span><span style="color: #2e0d6e;">addSubview</span><span style="color: black;">:</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #5c2699;">view</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
}</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
}</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: inherit;">This
calls the didFinishWithCamera delegats.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Times, 'Times New Roman', serif;"><br /></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">IBAction</span><span style="color: black;">)done:(</span><span style="color: #aa0d91;">id</span><span style="color: black;">)sender</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">delegate</span><span style="color: black;">
</span><span style="color: #26474b;">didFinishWithCamera</span><span style="color: black;">];
</span>
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Action
that maps takesPhoto. This just calls the takePicture of
imgaePickerController which is responsible for initiating still image
capture.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">IBAction</span><span style="color: black;">)takePhoto:(</span><span style="color: #aa0d91;">id</span><span style="color: black;">)sender</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">
</span><span style="color: #2e0d6e;">takePicture</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Also include the
follwoing delegates of imgePicker which gets called when an image is
taken by the camera.</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)imagePickerController:(</span><span style="color: #5c2699;">UIImagePickerController</span><span style="color: black;">
*)picker didFinishPickingMediaWithInfo:(</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
*)info</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #5c2699;">UIImage</span><span style="color: black;">
*image = [info </span><span style="color: #2e0d6e;">valueForKey</span><span style="color: black;">:</span><span style="color: #5c2699;">UIImagePickerControllerOriginalImage</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">if</span><span style="color: black;">
(</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">delegate</span><span style="color: black;">)</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">delegate</span><span style="color: black;">
</span><span style="color: #26474b;">didTakePicture</span><span style="color: black;">:image];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)imagePickerControllerDidCancel:(</span><span style="color: #5c2699;">UIImagePickerController</span><span style="color: black;">
*)picker</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">delegate</span><span style="color: black;">
</span><span style="color: #26474b;">didFinishWithCamera</span><span style="color: black;">];
</span><span style="color: #007400;">//
tell your delegate we are finished with the picker</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Thats all for
overlayViewController</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Now
How to use this in your class. You have to now include the
overlayController delegate and imgaPickerController in header of the
class where you wish to inclue a button for a camera capture.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Now
call the below function in the button action you need.</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)showImagePicker:(</span><span style="color: #5c2699;">UIImagePickerControllerSourceType</span><span style="color: black;">)sourceType</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #2e0d6e;">NSLog</span><span style="color: black;">(</span><span style="color: #c41a16;">@"entered
showImagePicker camera"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">if</span><span style="color: black;">
([</span><span style="color: #5c2699;">UIImagePickerController</span><span style="color: black;">
</span><span style="color: #2e0d6e;">isSourceTypeAvailable</span><span style="color: black;">:sourceType])</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
{</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">overlayViewController</span><span style="color: black;">
</span><span style="color: #26474b;">setupImagePicker</span><span style="color: black;">:sourceType];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">
</span><span style="color: #2e0d6e;">presentModalViewController</span><span style="color: black;">:</span><span style="color: #aa0d91;">self</span><span style="color: black;">.</span><span style="color: #3f6e74;">overlayViewController</span><span style="color: black;">.</span><span style="color: #3f6e74;">imagePickerController</span><span style="color: black;">
</span><span style="color: #2e0d6e;">animated</span><span style="color: black;">:</span><span style="color: #aa0d91;">YES</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
}</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: Times, 'Times New Roman', serif;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;"> This
checks for the sourcetype you give that should be a camera sourcetype the syntax is as below</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">[</span><span style="color: #aa0d91;">self</span><span style="color: black;">
</span><span style="color: #26474b;">showImagePicker</span><span style="color: black;">:</span><span style="color: #2e0d6e;">UIImagePickerControllerSourceTypeCamera</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: inherit;">Thats
it now include the delegates of overlay class that was created </span>
<br />
<span style="color: black; font-family: inherit;"><br /></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;">
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)didTakePicture:(</span><span style="color: #5c2699;">UIImage</span><span style="color: black;">
*)picture</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">//do
some thing with the picture.</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)didFinishWithCamera</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
[</span><span style="color: #aa0d91;">self</span><span style="color: black;">
</span><span style="color: #2e0d6e;">dismissModalViewControllerAnimated</span><span style="color: black;">:</span><span style="color: #aa0d91;">YES</span><span style="color: black;">]; </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><br /></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: inherit;">The
<b>didTakePicture</b> tells that a picture was taken, you get the
picture you snapped in this delegate. And <b>didFinishWithCamera</b>
tells to finish with the camera.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: inherit;">Thats
it. You get your camera to snap from your application and the image
you snapped. </span>
</div>
<br /></div>
CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com53tag:blogger.com,1999:blog-1298619317057174466.post-5204195132615003682012-09-10T01:32:00.000-07:002012-09-10T01:32:05.502-07:00Building a custom camera app in Android<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
- Rameshkumar Subramanian</div>
<div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
Its always my craze
to work on the image processing application. Infact I was thinking of developing a camera application for android mobiles which i have
already done for desktop. So, let me share what?, how? did i
come up with the application through this post.</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br />
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<b>Steps to follow</b></div>
<ul>
<li><div style="line-height: 150%; margin-bottom: 0cm;">
Determine
camera hardware exist of not.</div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0cm;">
Accessing the
camera.</div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0cm;">
Verifying
camera features.</div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0cm;">
Creating
preview class</div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0cm;">
Capturing the
picture and save it.</div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0cm;">
Releasing the
camera.</div>
</li>
</ul>
<span class="Apple-style-span" style="line-height: 24px;">To access the device
camera we must declare camera permission and feature in the manifest
file. For instance if we need to used auto-focus feature we have to
declare auto-focus feature in manifest file before to use it.</span><br />
<br />
<div style="line-height: 150%; margin-bottom: 0cm; text-align: left;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: navy;"><uses-permission</span>
<span style="color: purple;">android:name</span>=<span style="color: #339966;">"android.permission.CAMERA"</span>/></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Note: If you are
using camera via internet, you don't need this.</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;"><<span style="color: navy;">uses-feature</span>
<span style="color: purple;">android:name</span>=<span style="color: green;">"android.hardware.camera"</span>/></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;"><<span style="color: navy;">uses-feature</span>
<span style="color: purple;">android:name</span>=<span style="color: green;">"android.hardware.camera.autofocus"</span>/></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">Before launching our
camera application in the device, check whether device is having
camera hardware or not. If not, we do not want to install our
application. In that case we can declare our manifest file as the
following below.</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: navy;"><uses-permission</span>
<span style="color: purple;">android:name</span>=<span style="color: #339966;">"android.permission.CAMERA"</span><span style="color: #339966;">
</span>/></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">We can also detect
camera hardware in the runtime</span></div>
<div style="font-family: 'Courier New', monospace; font-size: small; line-height: 150%; margin-bottom: 0cm;">
<br />
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">/**
Check if this device has a camera */</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">private
boolean checkCameraHardware(Context context) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">if
(context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
this device has a camera</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">return
true;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}
else {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
no camera on this device</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">return
false;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">Camera.Open() method
to helps to access the camera.</span></div>
<div style="font-size: small; line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<b>Verifying camera
features</b></div>
<div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
Once we got access
to a camera, we can get further information about its capabilities
using the <span style="color: blue;"><u><a href="http://developer.android.com/reference/android/hardware/Camera.html#getParameters()"><span style="font-family: inherit;">Camera.getParameters()</span></a></u></span>
method and checking the returned <span style="color: blue;"><a href="http://developer.android.com/reference/android/hardware/Camera.Parameters.html"><span style="font-family: inherit;">Camera.Parameters</span></a></span>
object for supported capabilities.
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br />
</div>
<div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<b>Creating preview
class</b></div>
<br />
<div style="text-align: justify;">
The first thing
before we snap a pic is the view of it on the screen, its the
SurfacePreview class that to help view the object from camera. The
following codes implement the SufraceView class and
<span style="color: blue;"><u><a href="http://developer.android.com/reference/android/view/SurfaceHolder.Callback.html"><span style="font-family: inherit;">SurfaceHolder.Callback</span></a></u></span><span style="font-size: x-small;">
</span><span style="font-size: x-small;"><span style="font-size: small;">function
in order to handle the destroying and the creation of views.</span></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm; page-break-before: always;">
<br />
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">public
class CameraPreview extends SurfaceView implements
SurfaceHolder.Callback {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">private
SurfaceHolder surfaceHolder;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">private
Camera camera;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">public
CameraPreview(Context context, Camera camera) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">super(context);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">this.camera
= camera;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
SurfaceHolder.Callback so we get notified when the</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
underlying surface is created and destroyed.</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">surfaceHolder =
getHolder();</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">surfaceHolder.addCallback(this);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">surfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">public
void surfaceCreated(SurfaceHolder holder) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">try
{</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">camera.setPreviewDisplay(holder);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">camera.startPreview();</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}
catch (IOException e) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">Log.d(TAG, "Error
setting camera preview: " + e.getMessage());</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">public
void surfaceDestroyed(SurfaceHolder holder) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"> //Here
we can releasing the camera preview activity</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">public
void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
If your preview can change or rotate, take care of those events
here.</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
Make sure to stop the preview before resizing or reformatting it.</span></div>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm;">
<br />
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">if
(surfaceHolder.getSurface() == null){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
preview surface does not exist</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">return;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
stop preview before making changes</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">try
{</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">cmera.stopPreview();</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}
catch (Exception e){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
set preview size and make any resize, rotate or</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
reformatting changes here</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">//
start preview with new settings</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">try
{</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">camera.setPreviewDisplay(mHolder);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">camera.startPreview();</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}
catch (Exception e){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">Log.d(TAG, "Error
starting camera preview: " + e.getMessage());</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm;">
<b>Capturing Picture</b></div>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm;">
<b><br /></b></div>
<span class="Apple-style-span" style="line-height: 24px;">After implemented a preview class and view layout to display it, </span><span class="Apple-style-span" style="line-height: 24px;">we are ready to start capturing images.</span><div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">In order to retrieve the images, use the
Camera.takePicture() method. This method has four callback function
parameters that help to handle the picture. From that parameters we must implement
the Camera.PictureCallback interface to receive the data and write it
into file.</span></div>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm;">
<br />
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">private
PictureCallback mPicture = new PictureCallback() {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">@Override</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">public
void onPictureTaken(byte[] data, Camera camera) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">File
pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">if
(pictureFile == null){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">Log.d(TAG, "Error
creating media file, check storage permissions: " +</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">e.getMessage());</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">return;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">try
{</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">FileOutputStream fos
= new FileOutputStream(pictureFile);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">fos.write(data);</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">fos.close();</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}
catch (FileNotFoundException e) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">Log.d(TAG, "File
not found: " + e.getMessage());</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}
catch (IOException e) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">Log.d(TAG, "Error
accessing file: " + e.getMessage());</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<br />
</div>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<b>Saving Media File</b></div>
<div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">In saving media
files there are two standard locations we should consider as a
developer.</span></div>
<ul>
<li><div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="color: #3d85c6; font-family: inherit;"><u><a href="http://developer.android.com/reference/android/os/Environment.html#getExternalStoragePublicDirectory(java.lang.String)">Environment.getExternalStoragePublicDirectory</a></u>(<u><a href="http://developer.android.com/reference/android/os/Environment.html#DIRECTORY_PICTURES">Environment.DIRECTORY_PICTURES</a></u>)</span>
This method returns the standard, shared and recommended
location for saving pictures and videos. This directory is public,
so other applications can easily discover, read, change and delete
files saved in this location. If your application is uninstalled by
the user, media files saved to this location will not be removed.
</span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0cm; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="font-family: inherit;"><span style="color: blue;"><u><a href="http://developer.android.com/reference/android/content/Context.html#getExternalFilesDir(java.lang.String)">Context.getExternalFilesDir</a></u></span>(<span style="color: blue;"><u><a href="http://developer.android.com/reference/android/os/Environment.html#DIRECTORY_PICTURES">Environment.DIRECTORY_PICTURES</a></u></span>)</span>
This method returns a standard location for saving pictures
and videos which are associated with your application. If your
application is uninstalled, any files saved in this location are
removed. Security is not enforced for files in this location and
other applications may read, change and delete them.</span></div>
</li>
</ul>
<div style="font-weight: bold; line-height: 150%; margin-bottom: 0cm;">
<b>Releasing the
Camera</b></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: inherit;">Before the
application exits we have to release camera instance and also media
recorder.</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">@Override</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">protected
void onPause() {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">super.onPause();</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">releaseMediaRecorder();
// if you are using MediaRecorder, release it first</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">releaseCamera();
// release the camera immediately on pause event</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<br />
</div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">private
void releaseMediaRecorder(){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">if
(mMediaRecorder != null) {</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">mMediaRecorder.reset();
// clear recorder configuration</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">mMediaRecorder.release();
// release the recorder object</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">mMediaRecorder =
null;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">mCamera.lock();
// lock camera for later use</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">private
void releaseCamera(){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">if
(mCamera != null){</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">mCamera.release();
// release the camera for other applications</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">mCamera
= null;</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: Courier New, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0cm;">
Thats how i came up with the application.
</div>
<br />
<br />
<br />
</div>
CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com260tag:blogger.com,1999:blog-1298619317057174466.post-31686261782726853572012-07-19T02:43:00.000-07:002012-07-19T02:43:46.170-07:00Selection list in alert dialog box - Android<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<div style="text-align: right;">
- Kalimuthu Rengaswamy</div>
Dialog
box is one of the most interesting feature in Android. The style and
way making it appear depents upon the type of dialog box used and how
well we customize it. This blog explains how to create a list of
selectable items in an alert dialog box.</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<b><br /></b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<b>Dialog
class in Android</b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
Dialog
class has 4 sub classes</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
1.
<b>AlertDialog</b>
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
2.
<b>ProgressDialog</b> : A dialog that displays a progress wheel or
progress bar.
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
3.
<b>DatePickerDialog</b> : A dialog that allows the user to select a
date.
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
4.
<b>TimePickerDialog</b> : A dialog that allows the user to select a
time.</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b></b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b><br /></b>
<b>Alert dialog</b>
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
Alert dialog as the name
simplies shows an alert to the user. It can manage at the maximum of
3 buttons, a selectable list of items that can even include multiple
choice.
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b>Features of alert
dialog</b>
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
1. A title
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
2. A text message
</div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
3. One, two, or three
buttons
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
4. A list of selectable
items (with optional checkboxes or radio buttons) </div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<b><br /></b>
<b>Creating alert dialog</b></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<i><b><br /></b></i></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<i><b>Single choice alert:</b></i></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<i>
</i></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">//
this declare in golbal value </span></span>
</div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;">public</span><span style="color: black;">
</span><span style="color: #7f0055;">int</span><span style="color: black;">
</span><span style="color: #0000c0;">postion</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;">final</span><span style="color: black;">
AlertDialog.Builder singlechoicedialog = </span><span style="color: #7f0055;">new</span><span style="color: black;">
AlertDialog.Builder(</span><span style="color: #7f0055;">this</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;">final</span><span style="color: black;">
CharSequence[] Report_items = { </span><span style="color: #2a00ff;">"Choice
I"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Choice
II"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Choice
III"</span><span style="color: black;">,</span><span style="color: #2a00ff;">"Choice
IV"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Choice
V"</span><span style="color: black;"> };</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">singlechoicedialog.setTitle(</span><span style="color: #2a00ff;">"SingleChoice
Dialog "</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">singlechoicedialog.setSingleChoiceItems(Report_items,
-1,</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;">new</span><span style="color: black;">
DialogInterface.OnClickListener() {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"> public</span><span style="color: black;">
</span><span style="color: #7f0055;">void</span><span style="color: black;">
onClick(DialogInterface dialog, </span><span style="color: #7f0055;">int</span><span style="color: black;">
item) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #0000c0;"> postion</span><span style="color: black;">
= item;</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><br /></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> //
get selected value </span>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> String
value = Report_items[item].toString()</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> System.</span><span style="color: #0000c0;">out</span><span style="color: black;">.println(</span><span style="color: #2a00ff;">"Selected
position::"</span><span style="color: black;"> + value);</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> dialog.cancel();</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">});</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">AlertDialog
alert_dialog = singlechoicedialog.create();</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">alert_dialog.show();</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><br /></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">//
set defult select value </span>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">alert_dialog.getListView().setItemChecked(</span><span style="color: #0000c0;">postion</span><span style="color: black;">,
</span><span style="color: #7f0055;">true</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div align="LEFT" style="font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div class="separator" style="clear: both; font-style: italic; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhugFUQywphaEI4HDqVrqfwirRWcBOpcsVVdIW2PGVFOYesbYEtValcxuHu5G2fEQ2phWWRwDcvFI-WVgDNu6uS_ymILy-nKcixkhMPIW7weKECWwdxLadbRy0j-IwOmjSJwohHbwp-iGqt/s1600/single+choice.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhugFUQywphaEI4HDqVrqfwirRWcBOpcsVVdIW2PGVFOYesbYEtValcxuHu5G2fEQ2phWWRwDcvFI-WVgDNu6uS_ymILy-nKcixkhMPIW7weKECWwdxLadbRy0j-IwOmjSJwohHbwp-iGqt/s400/single+choice.png" width="240" /></a></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;">
</span></div>
<div align="LEFT" style="font-family: Consolas; font-size: small; font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><span style="color: #7f0055;"><b><br /></b></span></span></span></span></div>
<div align="LEFT" style="font-family: Consolas; font-size: small; font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><span style="color: #7f0055;"><b>
</b></span></span></span></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: inherit;"><b><i>Multi choice alert:</i></b></span></span></div>
<div align="LEFT" style="font-family: Consolas; font-size: small; font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><span style="color: #7f0055;"><b><br /></b></span></span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b>final</b></span><span style="color: black;">
CharSequence[] dilogList = { </span><span style="color: #2a00ff;">"Choice
One"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Choice
Two"</span><span style="color: black;">, </span><span style="color: #2a00ff;">"Choice
Three"</span><span style="color: black;"> };</span></span></span></div>
<span style="color: black;">
</span><br />
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">AlertDialog.Builder
multChoiceDialog = </span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
AlertDialog.Builder(</span><span style="color: #7f0055;"><b>this</b></span><span style="color: black;">);</span></span></span></div>
<span style="color: black;">
</span><br />
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><br /></span></span></span></div>
<span style="color: black;">
</span><br />
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">//set
title for aleart box</span></span></span></div>
<span style="color: black;">
</span><br />
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">multChoiceDialog.setTitle(</span><span style="color: #2a00ff;">"MultiChoice
Dialog"</span><span style="color: black;">);</span></span></span></div>
<span style="color: black;">
</span><br />
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b>boolean</b></span><span style="color: black;">[]
_selections = </span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>boolean</b></span><span style="color: black;">[dilogList.</span><span style="color: #0000c0;">length</span><span style="color: black;">];</span></span></span></div>
<span style="color: black;">
</span><br />
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">multChoiceDialog.setMultiChoiceItems(dilogList,
_selections, </span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
DialogInterface.OnMultiChoiceClickListener() {</span></span></span></div>
<span style="color: black;">
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
onClick(DialogInterface dialog,</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> int</b></span><span style="color: black;">
whichButton, </span><span style="color: #7f0055;"><b>boolean</b></span><span style="color: black;">
isChecked) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> });</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><br /></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">//
add positive button here </span>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">multChoiceDialog.setPositiveButton(</span><span style="color: #2a00ff;">"OK"</span><span style="color: black;">,</span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
DialogInterface.OnClickListener() {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: #646464;"><span style="font-family: 'Courier New', Courier, monospace;"> @Override</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b> public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
onClick(DialogInterface dialog, </span><span style="color: #7f0055;"><b>int</b></span><span style="color: black;">
which) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> //
getting listview from alert box </span>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> ListView list = ((AlertDialog)
dialog).getListView();</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> StringBuilder sb = <span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
StringBuilder();</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> for</b></span><span style="color: black;">
(</span><span style="color: #7f0055;"><b>int</b></span><span style="color: black;">
i = 0; i < list.getCount(); i++) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> boolean</b></span><span style="color: black;">
checked = list.isItemChecked(i);</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> //
get checked list value </span>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> if</b></span><span style="color: black;">
(checked) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b> if</b></span><span style="color: black;">
(sb.length() > 0)</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> sb.append(</span><span style="color: #2a00ff;">","</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> sb.append(list.getItemAtPosition(i));</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> Toast.<span style="color: black;">makeText</span><span style="color: black;">(getApplicationContext(),</span><span style="color: #2a00ff;">"Selected
digit:" </span></span>
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> +sb.toString(),Toast.<span style="color: #0000c0;">LENGTH_SHORT</span><span style="color: black;">).show();</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">});</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><br /></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">//
add negative button</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">multChoiceDialog.setNegativeButton(</span><span style="color: #2a00ff;">"Cancel"</span><span style="color: black;">,</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
DialogInterface.OnClickListener() {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: #646464;"><span style="font-family: 'Courier New', Courier, monospace;"> @Override</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b> public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
onClick(DialogInterface dialog, </span><span style="color: #7f0055;"><b>int</b></span><span style="color: black;">
which) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"> //
cancel code here</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">});</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">AlertDialog
alert1 = multChoiceDialog.create();</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">alert1.show();</span></span></div>
<div align="LEFT" style="font-family: Consolas; font-size: small; font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div class="separator" style="clear: both; font-family: Consolas; font-size: small; font-style: italic; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTUoewed75Lp5z4EqGi02w1XTp37pq51tee22UmO9dk8nd8RBC2gkNIKo7jbXOVa_RZt76tCSqXM2LMb_lvEPbiau7GRIdFZ3XtRYfl2meOtcP_khabS6xQLoIKSC95nA0GtSqRFnF4YCr/s1600/multi+choice.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTUoewed75Lp5z4EqGi02w1XTp37pq51tee22UmO9dk8nd8RBC2gkNIKo7jbXOVa_RZt76tCSqXM2LMb_lvEPbiau7GRIdFZ3XtRYfl2meOtcP_khabS6xQLoIKSC95nA0GtSqRFnF4YCr/s400/multi+choice.png" width="240" /></a></div>
<div align="LEFT" style="font-family: Consolas; font-size: small; font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;">
</span></div>
<div style="font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><i><span class="Apple-style-span" style="font-family: inherit;"><b>List alert:</b></span></i></span></div>
<div style="font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><i><span class="Apple-style-span" style="font-family: inherit;"><br /></span></i></span></div>
<div style="margin-bottom: 0cm;">
<span style="color: black;">
</span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b>final</b></span><span style="color: black;">
AlertDialog.Builder menuAleart = </span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;"> AlertDialog.Builder(FiltterlistActivity.</span><span style="color: #7f0055;"><b>this</b></span><span style="color: black;">);</span></span></span></div>
<span style="color: black;">
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #7f0055;"><b>final</b></span><span style="color: black;">
String[] menuList = { </span><span style="color: #2a00ff;">"function1"</span><span style="color: black;">,
</span><span style="color: #2a00ff;">"function2"</span><span style="color: black;">
};</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">menuAleart.setTitle(</span><span style="color: #2a00ff;">"list
dialog"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">menuAleart.setItems(menuList,</span><span style="color: #7f0055;"><b>new</b></span><span style="color: black;">
DialogInterface.OnClickListener() {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> public</b></span><span style="color: black;">
</span><span style="color: #7f0055;"><b>void</b></span><span style="color: black;">
onClick(DialogInterface dialog, </span><span style="color: #7f0055;"><b>int</b></span><span style="color: black;">
item) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> switch</b></span><span style="color: black;">
(item) {</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> case</b></span><span style="color: black;">
0:</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #3f7f5f;"> //
function 1 code here</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> break</b></span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> case</b></span><span style="color: black;">
1:</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #3f7f5f;"> //
function 2 code here</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #7f0055;"><b> break</b></span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">});</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">AlertDialog
menuDrop = menuAleart.create();</span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">menuDrop.show();</span></span></div>
<div align="LEFT" style="font-family: Consolas; font-size: small; font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div class="separator" style="clear: both; font-family: Consolas; font-size: small; font-style: italic; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQYyp_Rdh0BYASk7_US6Q5HpcQELIvwU1xyH3otQv9zPW0GnklpGnKjuRz5aqRUNTbxdEMXIfnPJ_Z2agVyZxvesxAzzw9fgGQKKqblse3VDl0JpQZS7_LztEWb2LmSxXAudoAELt26-ti/s1600/listaleart.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="400" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQYyp_Rdh0BYASk7_US6Q5HpcQELIvwU1xyH3otQv9zPW0GnklpGnKjuRz5aqRUNTbxdEMXIfnPJ_Z2agVyZxvesxAzzw9fgGQKKqblse3VDl0JpQZS7_LztEWb2LmSxXAudoAELt26-ti/s400/listaleart.png" width="240" /></a></div>
<div align="LEFT" style="font-family: Consolas; font-size: small; font-style: italic; margin-bottom: 0cm;">
<span style="color: black;"><span style="font-family: Consolas;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div align="LEFT" style="margin-bottom: 0cm;">
<span style="color: black;">
</span></div>
<div align="JUSTIFY" style="margin-bottom: 0cm;">
<span style="color: black;"><span class="Apple-style-span" style="font-family: inherit;">Here, I have picked a single
feature of alert dialog and explained. You can just copy, paste and
execute the code for the results.</span><span class="Apple-style-span" style="font-family: Consolas; font-size: x-small; font-style: italic;"> </span></span></div>
<br />
</span></span><br />
<br />
<br />
<br /></div>
CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com37N Boag Rd, Thiyagaraya Nagar, Chennai, Tamil Nadu, India13.0411727 80.244208113.0392392 80.2417406 13.0431062 80.246675599999989tag:blogger.com,1999:blog-1298619317057174466.post-15517787786965276922012-07-17T01:23:00.000-07:002012-07-17T03:07:21.134-07:00Comparison of cloud services<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font: 12.0px Helvetica; margin: 0.0px 0.0px 0.0px 0.0px;">
</div>
<div style="line-height: 150%; margin-bottom: 0cm; text-align: right;">
<span style="color: black;"><span style="font-family: 'Times New Roman', serif;">- </span></span><span class="Apple-style-span" style="line-height: normal;">Yogesh Girikumar</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
Here is a very simple comparison between some of the services exposed by three popular cloud platforms, <span class="Apple-style-span" style="background-color: white;"><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="color: #3d85c6;"><a href="http://aws.amazon.com/"><span class="Apple-style-span" style="color: #3d85c6;">Amazon AWS</span></a></span>, <a href="http://openstack.com/"><span class="Apple-style-span" style="color: #3d85c6;">OpenStack</span></a><span class="Apple-style-span" style="color: blue;">,</span> and <a href="http://www.rackspace.com/"><span class="Apple-style-span" style="color: #3d85c6;">Rackspace Cloud</span></a>.</span><span class="Apple-style-span" style="font-family: 'Times New Roman', serif;"> </span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Times New Roman', serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbLzutl93xyS4GhW2UUjdjbXSuyLH1lJu6BqNzTJCKXU01ozykuNy0ElBwklRJF0tPqgASidxBUZmrlmk0cIGOaaPjy9uGjjtCnP1NKzrU8faz0JUA7Vx7cpdukWu2AARahP7A_6tELrMg/s1600/cloud_comparison.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="351" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjbLzutl93xyS4GhW2UUjdjbXSuyLH1lJu6BqNzTJCKXU01ozykuNy0ElBwklRJF0tPqgASidxBUZmrlmk0cIGOaaPjy9uGjjtCnP1NKzrU8faz0JUA7Vx7cpdukWu2AARahP7A_6tELrMg/s400/cloud_comparison.png" width="400" /></a></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="font-family: 'Times New Roman', serif;"><span style="font-size: small;"><span style="color: black;"><br /></span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span style="color: black; font-family: inherit;">Please do note that this chart is not an exhaustive list of services offered by any provider. It is for illustrative purposes only. This is just a comparison of some of the ADVERTISED SERVICE offerings and not of all the features or capabilities. The table illustrates only what are being OFFERED as SERVICES, right now.<span class="Apple-style-span" style="background-color: white;"> </span></span><br />
<span class="Apple-style-span" style="background-color: white; font-family: inherit;">
</span><br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0cm;">
<span class="Apple-style-span" style="background-color: white; font-family: inherit;">As
always, things change with time. OpenStack, the popular open source
cloud framework that has recently gained much attention and momentum
has been adding a lot of features to its arsenal lately; The
network-connectivity-as-a-service (NaaS?) component, <span class="Apple-style-span" style="color: #3d85c6;"><a href="http://docs.openstack.org/developer/quantum/"><span class="Apple-style-span" style="color: #3d85c6;">Quantum</span></a> </span>being
the latest addition; And the volume service component is being
renamed <a href="http://docs.openstack.org/developer/cinder/"><span class="Apple-style-span" style="color: #3d85c6;">Cinder</span></a> and a lot of development effort is being
dedicated to that as a seperate project.</span></div>
</div>
<br /></div>
CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com26N Boag Rd, Thiyagaraya Nagar, Chennai, Tamil Nadu, India13.041576633960704 80.24420499801635713.041335133960704 80.243896498016355 13.041818133960703 80.24451349801636tag:blogger.com,1999:blog-1298619317057174466.post-12836461482585701742012-04-27T07:16:00.002-07:002012-05-11T04:13:46.547-07:00Implementing the theme concept in C# client application<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">- Shanthi karthika</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Its
a common practice to include images either from the project resource files
or from the settings file in any C# project. This heads to do changes
in code for any change in an image. To overcome this and to load the images at the runtime <b>Theme Concept</b>
can be used.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"> The theme concept
is a way of segregating the images to a class library and loading the
images at the runtime. The images are to be changed only in
the dll and so the source code will not be disturbed.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Below, I have created
a demo project in which theme concept has been implemented. This sample can be used to know the way how theme concept can be
used.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Times New Roman', serif;"><span style="font-size: small;"><b><br /></b></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b>Sample
Demo For Theme:</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Following steps can
be done to implement Theme.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b><br /></b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b>Step
1:</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;">In<b> Visual
Studio </b>Create a windows
application. For instance, here I name it is as <b>CssStorage.</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b><br /></b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b>Step2:</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Create
an <b>interface class </b>inside the<b> CssStorage </b>and<b>
</b>name it as<b> InterfaceImages</b>.
Implement all the images in the interface which are needed for the
application.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="color: blue;">namespace</span><span style="color: black;">
CssStorage</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: blue;">public</span><span style="color: black;">
</span><span style="color: blue;">interface</span><span style="color: black;">
</span><span style="color: #2b91af;">InterfaceImages</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">{</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #2b91af;">Bitmap</span><span style="color: black;">
AddButton { </span><span style="color: blue;">get</span><span style="color: black;">;
}</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: #2b91af;">Bitmap</span><span style="color: black;">
DeleteButton { </span><span style="color: blue;">get</span><span style="color: black;">;
}</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">} </span>
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 0.14in; margin-bottom: 0in;">
<span style="font-family: 'Times New Roman', serif;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 0.14in; margin-bottom: 0in;">
<span style="font-family: inherit;">Compile CssStorage
which will create a dll, for instance here it creates <b>CssStorage.exe</b>.</span></div>
<div align="JUSTIFY" style="line-height: 0.14in; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b>Step3:</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Create
a class library, for instance name it as<b> CssTheme</b>.
Add a project resource file which contains the images that are needed
for the application.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWGFm9IhuK-JpHMh2pPB69F-C5h-685U-FPpeV7yCgp8doIUw43IZqFRNxpQn3Z1wrQGnWHkA9IzPGNY5uOZ1_NDIo6ERLQTzCtVPel12nB8eTIF_eMzI6QrznyeDf_fM7Rih1CWvoh7Xy/s1600/Screen+shot+2012-04-27+at+5.19.57+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhWGFm9IhuK-JpHMh2pPB69F-C5h-685U-FPpeV7yCgp8doIUw43IZqFRNxpQn3Z1wrQGnWHkA9IzPGNY5uOZ1_NDIo6ERLQTzCtVPel12nB8eTIF_eMzI6QrznyeDf_fM7Rih1CWvoh7Xy/s1600/Screen+shot+2012-04-27+at+5.19.57+PM.png" /></a></div>
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<b style="line-height: 0.14in; text-align: left;"><span style="font-family: inherit;">Step4:</span></b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 0.14in; margin-bottom: 0in;">
<span style="font-family: inherit;">Add
the CssStorage.exe to CssTheme and make a reference to it.</span><br />
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFfLjCHjyGgddH1bph6ixlhk8WNsWN3I8WjY49JyXvyII7QDi76Housdkyz8NGgLdMidmzz8PAFTawIpBPHkivZMwSF7PIV4ASARbJ9wKm6cVhaUGrLcwij79qsvxvzpVdtFNjoK4CmLyq/s1600/Screen+shot+2012-04-27+at+5.20.10+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFfLjCHjyGgddH1bph6ixlhk8WNsWN3I8WjY49JyXvyII7QDi76Housdkyz8NGgLdMidmzz8PAFTawIpBPHkivZMwSF7PIV4ASARbJ9wKm6cVhaUGrLcwij79qsvxvzpVdtFNjoK4CmLyq/s1600/Screen+shot+2012-04-27+at+5.20.10+PM.png" /></a></div>
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 0.14in; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 0.14in; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b>Step
5:</b></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="line-height: 150%;"> Create
a</span></span><b style="font-family: inherit; line-height: 150%;"> </b><span style="font-family: inherit;"><span style="line-height: 150%;">class in</span></span><b style="font-family: inherit; line-height: 150%;"> CssTheme</b><span style="font-family: inherit;"><span style="line-height: 150%;">
for instance name it as</span></span><b style="font-family: inherit; line-height: 150%;"> Images</b><span style="font-family: inherit;"><span style="line-height: 150%;">, which
implements the images for which interface have been </span></span><span style="line-height: 24px;">build</span><span style="font-family: inherit;"><span style="line-height: 150%;">.</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;">using
CssStorage;</span></div>
<div align="JUSTIFY" style="line-height: 100%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="color: blue;">namespace</span><span style="color: black;">
CssTheme</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> public</span><span style="color: black;">
</span><span style="color: blue;">class</span><span style="color: black;">
</span><span style="color: #2b91af;">Images : InterfaceImages</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> {</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> public</span><span style="color: black;">
</span><span style="color: #2b91af;">Bitmap</span><span style="color: black;">
AddButton</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> {</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> get</span><span style="color: black;">
{ </span><span style="color: blue;">return</span><span style="color: black;">
Properties.</span><span style="color: #2b91af;">Resource</span><span style="color: black;">.AddButtonImage;
}</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> }</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> public</span><span style="color: black;">
</span><span style="color: #2b91af;">Bitmap</span><span style="color: black;">
DeleteButton</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> {</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> get</span><span style="color: black;">
{ </span><span style="color: blue;">return</span><span style="color: black;">
Properties.</span><span style="color: #2b91af;">Resource</span><span style="color: black;">.DeleteButtonImage;
}</span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> }</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span>}</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<br />
<div align="JUSTIFY" style="line-height: 100%; margin-bottom: 0in;">
<span style="font-family: 'Times New Roman', serif;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 100%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Step
6:</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Compile
CssTheme and extract the dll. Add the dll to the CssStorage. Now, in
CssStorage make a call to the assembly to retrieve the path of
CssTheme. Now call the images through the assembly.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="color: #2b91af;">Hashtable</span><span style="color: black;">
</span><span style="color: #993366;">mAssemblies</span><span style="color: black;">
= </span><span style="color: blue;">new</span><span style="color: black;">
</span><span style="color: #2b91af;">Hashtable</span><span style="color: black;">();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="color: #2b91af;">Interface
</span><span style="color: black;">lCommand;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="color: #2b91af;">Assembly</span><span style="color: black;">
lAssembly = </span><span style="color: blue;">null</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace; font-size: small;">String
filename= “CssTheme”;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"><span style="color: blue;">string</span><span style="color: black;">
themePath =
</span><span style="color: #2b91af;">Assembly</span><span style="color: black;">.GetExecutingAssembly().Location.Replace(</span><span style="color: #2b91af;">Assembly</span><span style="color: black;">.GetExecutingAssembly().ManifestModule.ScopeName,
</span><span style="color: #a31515;">""</span><span style="color: black;">);</span><span style="color: black;"><span style="background-attachment: initial; background-clip: initial; background-color: #cccccc; background-image: initial; background-origin: initial;">
</span></span></span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="float: left; font-size: 100%;">/</span><span style="color: black;"><span style="background-attachment: initial; background-clip: initial; background-color: #cccccc; background-image: initial; background-origin: initial;">/
Retrives the path where the CssTheme.dll Exists.</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="color: blue;">if</span><span style="color: black;">
(mAssemblies != </span><span style="color: blue;">null</span><span style="color: black;">
&& mAssemblies.ContainsKey(fileName + </span><span style="color: #a31515;">".dll"</span><span style="color: black;">)
== </span><span style="color: blue;">false</span><span style="color: black;">)</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lAssembly
= </span><span style="color: #2b91af;">Assembly</span><span style="color: black;">.LoadFile(</span><span style="color: #2b91af;">Path</span><span style="color: black;">.Combine(themePath,
fileName + </span></span><span style="color: #a31515; font-family: 'Courier New', Courier, monospace; line-height: 150%;">".dll"</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">));</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> mAssemblies.Add(fileName
+ </span><span style="color: #a31515;">".dll"</span><span style="color: black;">,
lAssembly);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="background-attachment: initial; background-clip: initial; background-color: #cccccc; background-image: initial; background-origin: initial;">//
retrived Images are casted to interface.</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">lCommand =
</span><span style="color: blue;">default</span><span style="color: black;">(</span><span style="color: #2b91af;">InterfaceImages</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">lCommand =
(</span><span style="color: #2b91af;">InterfaceImages</span><span style="color: black;">)createObject(fileName
+ </span><span style="color: #a31515;">".Images"</span><span style="color: black;">);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="float: left; font-size: 100%;">
</span><span style="font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"><span style="color: blue;">private</span><span style="color: black;">
</span><span style="color: blue;">object</span><span style="color: black;">
createObject(</span><span style="color: blue;">string</span><span style="color: black;">
lObjectType) </span><span style="color: black;"><span style="background-attachment: initial; background-clip: initial; background-color: #cccccc; background-image: initial; background-origin: initial;">//to
retrive Images from the CssTheme </span></span></span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: blue;">try</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> object</span><span style="color: black;">
lObject = </span><span style="color: blue;">null</span><span style="color: black;">;
</span><span style="color: blue;">int</span><span style="color: black;">
lAssemblyCount = 0; </span></span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lAssemblyCount
= mAssemblies.Count;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lAssembly
= </span><span style="color: #2b91af;">Assembly</span><span style="color: black;">.GetCallingAssembly();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lObject
= lAssembly.CreateInstance(lObjectType);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> if</span><span style="color: black;">
(lObject == </span><span style="color: blue;">null</span><span style="color: black;">)</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lAssembly
= </span><span style="color: #2b91af;">Assembly</span><span style="color: black;">.GetExecutingAssembly();</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lObject
= lAssembly.CreateInstance(lObjectType);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> if</span><span style="color: black;">
(lObject == </span><span style="color: blue;">null</span><span style="color: black;">)</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: #2b91af;"> IDictionaryEnumerator</span><span style="color: black;">
enumerator = mAssemblies.GetEnumerator();</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> while</span><span style="color: black;">
(enumerator.MoveNext())</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lAssembly
= (</span><span style="color: #2b91af;">Assembly</span><span style="color: black;">)enumerator.Value;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> lObject
= lAssembly.CreateInstance(lObjectType);</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> if</span><span style="color: black;">
(lObject != </span><span style="color: blue;">null</span><span style="color: black;">)</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="font-size: small;"><span style="color: blue;"> break</span><span style="color: black;">;</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"><span style="font-size: small;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: blue;">return</span><span style="color: black;">
lObject;</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: blue;">catch</span><span style="color: black;">
(</span><span style="color: #2b91af;">DllNotFoundException</span><span style="color: black;">
ex)</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: blue;">throw</span><span style="color: black;">
ex;</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: blue;">catch</span><span style="color: black;">
(</span><span style="color: #2b91af;">Exception</span><span style="color: black;">
ex)</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="font-size: small;"><span style="color: blue;">throw</span><span style="color: black;">
ex;</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">
<span style="font-size: small;">}</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><span style="float: left; font-size: 100%;">N</span>ow
the images will be retrieved and it can be used where ever needed by
calling the <b>Interface Object Icommand</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="float: left; font-size: 100%;">
</span> <span style="font-family: inherit; font-size: small;"><b>uxAddPictureBox.Image
= lCommand.AddButton;</b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b>uxDeletePictureBox.Image
= lCommand.DeleteButton;</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; font-size: small;"><b><br /></b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="font-size: small;"><b>Step
7:</b></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="line-height: 150%; text-align: left;">Compile
the project. The images will be loaded at the runtime.</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Implement
the ThemeConcept and get new experience of loading images at runtime
from a class library. </span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com12tag:blogger.com,1999:blog-1298619317057174466.post-35768046816443294082012-03-27T03:27:00.000-07:002012-03-28T01:25:45.642-07:00Handling Windows power state<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">- Rameshkumar Subramanian</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">While
developing CloudStorage Drive [virtual drive] application I came
across exploring windows power management to remount the CloudStorage
Drive after getting up from hibernate state. Usually you can see our
local drive / regular drive, like C:\, gets mounted when the system
wakes up from sleep state.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">We
know that the operating system controls power management across the
entire PC system. For example, suppose if you have paused a video and
go to the hibernate state the process goes idle here. You can see the
video remain on the same state when the system is on back.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">The
software developers can now make their application power-aware by handling
the WM_POWERBROADCAST message provided by the windows operating
system and scaling features accordingly. This article describes how
to handle the WM_POWERBROADCAST message and also describes the
sequence of messages for four typical cases. This is very helpful for
whoever wants to re-launch the application after the system get back
to power state.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Power
States</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"> To
the user, the PC is either on or off, and other conditions are not
visible. However, the ACPI (Advanced Configuration and Power
Interface) specification defines a number of different power states
that are supported by windows operating system.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<table border="1" bordercolor="#000000" cellpadding="6" cellspacing="0" style="width: 489px;">
<colgroup><col width="70"></col>
<col width="393"></col>
</colgroup><tbody>
<tr valign="TOP">
<td width="70"><div align="JUSTIFY">
<b><span style="font-family: inherit;">State</span></b></div>
</td>
<td width="393"><div align="JUSTIFY">
<b><span style="font-family: inherit;">Description</span></b></div>
</td>
</tr>
<tr valign="TOP">
<td width="70"><div align="JUSTIFY">
<span style="font-family: inherit;">S0/Working</span></div>
</td>
<td width="393"><div align="JUSTIFY">
<span style="font-family: inherit;"><b>On</b>. The CPU is fully up and running. power
conversation is on a per-device basis.</span></div>
</td>
</tr>
<tr valign="TOP">
<td width="70"><div align="JUSTIFY">
<span style="font-family: inherit;">S1 Sleep</span></div>
</td>
<td width="393"><div align="JUSTIFY">
<span style="font-family: inherit;"><b>Appears off</b>. The CPU is stopped. RAM is
refreshed, the system is running in a low power mode.</span></div>
</td>
</tr>
<tr valign="TOP">
<td width="70"><div align="JUSTIFY">
<span style="font-family: inherit;">S2 Sleep</span></div>
</td>
<td width="393"><div align="JUSTIFY">
<span style="font-family: inherit;"><b>Appears off</b>. The CPU has no power. RAM is
refreshed. The system is in a lower mode than S1.</span></div>
</td>
</tr>
<tr valign="TOP">
<td width="70"><div align="JUSTIFY">
<span style="font-family: inherit;">S3 Sleep</span></div>
</td>
<td width="393"><div align="JUSTIFY">
<span style="font-family: inherit;"><b>Appears off.</b> The CPU has no power. RAM is
in slow refresh. The power supply is in a reduced power mode.</span></div>
</td>
</tr>
<tr valign="TOP">
<td width="70"><div align="JUSTIFY">
<span style="font-family: inherit;">S4 Hibernate</span></div>
</td>
<td width="393"><div align="JUSTIFY">
<span style="font-family: inherit;"><b>Appears off</b>. The hardware is completely
off. But system memory has been saved to disk.</span></div>
</td>
</tr>
<tr valign="TOP">
<td width="70"><div align="JUSTIFY">
<span style="font-family: inherit;">S5/Off</span></div>
</td>
<td width="393"><div align="JUSTIFY">
<span style="font-family: inherit;"><b>Off</b>. The hardware is completely off. The
operating system has shut down, nothing has been saved. Requires a
complete reboot to return to the working state.</span></div>
</td>
</tr>
</tbody></table>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"> The
power management functions and messages retrieve the system power
status and notify applications of power management events. The
windows offer WM_POWERBROADCAST message which will be send to the
application to indicate power changes. The documentation for each of
these is provided as:</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<table border="1" bordercolor="#000000" cellpadding="6" cellspacing="0" style="width: 488px;">
<colgroup><col width="225"></col>
<col width="237"></col>
</colgroup><tbody>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
<b>Event</b></div>
</td>
<td width="237"><div align="JUSTIFY">
<b>Meaning</b></div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMBATTERY LOW</div>
</td>
<td width="237"><div align="LEFT">
Battery power is low.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMOEMEVENT</div>
</td>
<td width="237"><div align="LEFT">
OEM-defined event occurred.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMPOWERSTATUSCHANGE</div>
</td>
<td width="237"><div align="LEFT">
Power status has changed.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMQUERYSUSPEND</div>
</td>
<td width="237"><div align="LEFT">
Request for permission to suspend.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMQUERYSUSPENDFAILED</div>
</td>
<td width="237"><div align="LEFT">
Suspension request denied.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMRESUMEAUTOMATIC</div>
</td>
<td width="237"><div align="LEFT">
Operation resuming automatically after event.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMRESUMECRITICAL</div>
</td>
<td width="237"><div align="LEFT">
Operation resuming after critical suspension.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMRESUMESUSPEND</div>
</td>
<td width="237"><div align="LEFT">
Operation resuming after suspension.</div>
</td>
</tr>
<tr valign="TOP">
<td width="225"><div align="JUSTIFY">
PBT_APMSUSPEND</div>
</td>
<td width="237"><div align="LEFT">
System is suspending operation.</div>
</td>
</tr>
</tbody></table>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">The
window proc receives the entire event which we can easily implement
as shown below. In .Net you have to using interop service namespace
for those things .
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: blue;">protected</span><span style="color: black;"> </span><span style="color: blue;">override</span><span style="color: black;"> </span><span style="color: blue;">void</span><span style="color: black;"> WndProc(</span><span style="color: blue;">ref</span><span style="color: black;"> </span><span style="color: #2b91af;">Message</span><span style="color: black;"> m)</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;">{</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: black;"> </span><span style="color: blue;">base</span><span style="color: black;">.WndProc(</span><span style="color: blue;">ref</span><span style="color: black;"> m);</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: black;"> </span><span style="color: blue;">switch</span><span style="color: black;"> (m.Msg)</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;"> {</span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: blue;"> case</span><span style="color: black;"> WM_POWERBROADCAST:</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;"> {</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: blue;"> switch</span><span style="color: black;"> (m.WParam.ToInt32())</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;"> {</span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: black;"> </span><span style="color: blue;">case</span><span style="color: black;"> (</span><span style="color: blue;">int</span><span style="color: black;">)</span><span style="color: #2b91af;">PBT</span><span style="color: black;">.PBT_APMQUERYSUSPEND:</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;"> . . .</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;"> . . .</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;"> }</span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;"> }</span></span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;"> }</span></div>
<div align="JUSTIFY" style="background: #ffffff; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;">}</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">The
above code can be made use to handle the power suspend states like
when system goes sleep or to hibernate mode.</span></div>
</div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com4tag:blogger.com,1999:blog-1298619317057174466.post-27147926916723430862012-03-21T04:21:00.001-07:002012-03-21T04:39:58.018-07:00Handling multiple selection in iPhone TableView<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">- Rashid Khaleefa</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Its a
common practice to list down the data or items in any mobile phone.
The display of contact list is a very common example in any mobile
phone where you see a list of contacts saved. Even though the brand,
the OS or the model differs, when it comes to bulk of data to display
either a listview control or any tableview alternative controls are
used.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">In
iPhone items can be displayed using the UITableview control. I came
across using this control in my iPhone app. It was quiet easy to
get started with displaying a list of data from an array. I just had
to use the UITableview control along with its delegates to handle the
display. It is much cool to use three functions as below to display the
items. Here I have an <b>array of dictionaries</b> to list out in the
tableview.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Menlo-Regular;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #5c2699;">NSInteger</span><span style="color: black;">)numberOfSectionsInTableView:(</span><span style="color: #5c2699;">UITableView</span><span style="color: black;">
*)tableView </span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #007400;">//
Return the number of sections.</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #aa0d91;">return</span><span style="color: black;">
</span><span style="color: #1c00cf;">1</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #5c2699;">NSInteger</span><span style="color: black;">)tableView:(</span><span style="color: #5c2699;">UITableView</span><span style="color: black;">
*)tableView numberOfRowsInSection:(</span><span style="color: #5c2699;">NSInteger</span><span style="color: black;">)section</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #007400;">//Return
the number of rows in the section.</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #aa0d91;">return</span><span style="color: black;">
[</span><span style="color: #3f6e74;">tableList</span><span style="color: black;">
</span><span style="color: #2e0d6e;">count</span><span style="color: black;">];</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #0e0e0e; font-family: inherit; line-height: 150%; text-align: left;"><span style="font-size: small;">And
</span></span><span style="color: #0e0e0e; font-family: inherit; line-height: 150%; text-align: left;"><span style="font-size: small;"><b>cellForRowAtIndexPath</b></span></span><span style="color: #0e0e0e; font-family: inherit; line-height: 150%; text-align: left;"><span style="font-size: small;">
function gets called once for each row. This is where we define what
content to display in a given row or cell. We assign the values to
each cell labels. I have used a custom cell designed with three
labels and an imageview separately and values are assigned to the
corresponding controls in each cell.</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Menlo-Regular;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-(</span><span style="color: #5c2699;">UITableViewCell</span><span style="color: black;">*)tableView:(</span><span style="color: #5c2699;">UITableView</span><span style="color: black;">*)tableView cellForRowAtIndexPath:(</span><span style="color: #5c2699;">NSIndexPath</span><span style="color: black;">
*)indexPath </span>
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #007400;">
</span>
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;"> static</span>
<span style="color: #5c2699;">NSString</span>
*CellID = <span style="color: #c41a16;">@"CustomCell"</span>;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #3f6e74;"> CustomCellController</span><span style="color: black;">
*cell = (</span><span style="color: #3f6e74;">CustomCellController</span><span style="color: black;">*)[tableView </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2e0d6e;"> dequeueReusableCellWithIdentifier</span><span style="color: black;">:CellID];</span></span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> if</span><span style="color: black;">
(cell == </span><span style="color: #aa0d91;">nil</span><span style="color: black;">)</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"><span style="color: #2e0d6e;"> </span><span style="color: #5c2699;">NSArray</span><span style="color: black;">
*topLevelObjects = [[</span><span style="color: #5c2699;">NSBundle</span><span style="color: black;">
</span><span style="color: #2e0d6e;">mainBundle</span><span style="color: black;">] </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2e0d6e;"> loadNibNamed</span><span style="color: black;">:</span><span style="color: #c41a16;">@"CustomCellController"</span><span style="color: black;"> </span><span style="color: #2e0d6e;">owner</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;"> </span><span style="color: #2e0d6e;">options</span><span style="color: black;">:</span><span style="color: #aa0d91;">nil</span><span style="color: black;">];</span></span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> for</span><span style="color: black;">(</span><span style="color: #aa0d91;">id</span><span style="color: black;">
currentObject </span><span style="color: #aa0d91;">in</span><span style="color: black;">
topLevelObjects)</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> if</span><span style="color: black;">([currentObject
</span><span style="color: #2e0d6e;">isKindOfClass</span><span style="color: black;">:[</span><span style="color: #3f6e74;">CustomCellController</span><span style="color: black;">
</span><span style="color: #2e0d6e;">class</span><span style="color: black;">]])</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> cell
= (</span><span style="color: #3f6e74;">CustomCellController</span><span style="color: black;">
*)currentObject;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> break</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> } </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> <span style="color: #007400;">
//tableList is an array on dictionary elements.</span></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> </span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
*item = (</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
*)[</span><span style="color: #3f6e74;">tableList</span><span style="color: black;">
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">:indexPath.</span><span style="color: #5c2699;">row</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [[[cell
</span><span style="color: #26474b;">Name</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">setText</span><span style="color: black;">:[</span><span style="color: #3f6e74;">UserUtils</span><span style="color: black;">
</span><span style="color: #26474b;">convertSize</span><span style="color: black;">:[item
</span><span style="color: #2e0d6e;">objectForKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"ImageName"</span><span style="color: black;">]]];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [[cell
</span><span style="color: #26474b;">Size</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">setText</span><span style="color: black;">:[item
</span><span style="color: #2e0d6e;">objectForKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"Size"</span><span style="color: black;">]];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [[cell
</span><span style="color: #26474b;">Date</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">setText</span><span style="color: black;">:[item
</span><span style="color: #2e0d6e;">objectForKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"Date"</span><span style="color: black;">]];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [[cell
</span><span style="color: #2e0d6e;">imageView</span><span style="color: black;">]
</span><span style="color: #2e0d6e;">setImage</span><span style="color: black;">:[</span><span style="color: #5c2699;">UIImage</span><span style="color: black;">
</span><span style="color: #2e0d6e;">imageNamed</span><span style="color: black;">:</span><span style="color: #c41a16;">@"image.png"</span><span style="color: black;">]];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">
</span><span style="color: #aa0d91;">return</span><span style="color: black;">
cell;</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">But I
was stuck when it came to select multiple items from the table. I
quiet easily managed to select a singe item from the list using the
</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">didSelectRowAtIndexPath</span><span style="font-family: inherit;">
function. But When it came to multiple selection I started breaking
my head over. This made me google and got some solutions. But
never stopped me googling more because most of the solution worked
fine when there was only a page of data to display, where for me it
was a list of twenty items.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">The
first thing I had to do was to select and deselect items in table
which was identifiable by a check mark indication over the selected
cell. Then I wanted to retrieve the corresponding dictionary of the
selected items.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">The
issue I faced trying to select multiple items was that when I select
fist item in the table of a particular page, the corresponding first
item of all page was selected and so I was not able to differentiate
the item list that was actually selected. And also to select and
unselect multiple items from table took me some time to work it fine.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">This
is how I came up with the solution</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)tableView:(</span><span style="color: #5c2699;">UITableView</span><span style="color: black;">*)tableView didSelectRowAtIndexPath:(</span><span style="color: #5c2699;">NSIndexPath</span><span style="color: black;">
*)indexPath </span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #5c2699;"> NSMutableDictionary</span><span style="color: black;">
*rowDict = [</span><span style="color: #3f6e74;">tableList</span><span style="color: black;">
</span><span style="color: #2e0d6e;">objectAtIndex</span><span style="color: black;">: </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> [indexPath </span><span style="color: #2e0d6e; font-family: 'Courier New', Courier, monospace;">row</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">]];</span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #5c2699;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #5c2699;"> NSString</span><span style="color: black;">
*SelectedState = (</span><span style="color: #5c2699;">NSString</span><span style="color: black;">*)[rowDict </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #2e0d6e; font-family: 'Courier New', Courier, monospace;"> objectForKey</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">:</span><span style="color: #c41a16; font-family: 'Courier New', Courier, monospace;">@"objSelected"</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">];</span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> if</span><span style="color: black;">([SelectedState
</span><span style="color: #2e0d6e;">isEqualToString</span><span style="color: black;">:
</span><span style="color: #c41a16;">@"YES"</span><span style="color: black;">])</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [rowDict
</span><span style="color: #2e0d6e;">setObject</span><span style="color: black;">:</span><span style="color: #c41a16;">@"NO"</span><span style="color: black;">
</span><span style="color: #2e0d6e;">forKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"objSelected"</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [tableView
</span><span style="color: #2e0d6e;">cellForRowAtIndexPath</span><span style="color: black;">:indexPath].</span><span style="color: #5c2699;">accessoryType</span><span style="color: black;">
= </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #2e0d6e; font-family: 'Courier New', Courier, monospace;"> UITableViewCellAccessoryNone</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">;</span><span style="color: black; font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> else</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> {</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [rowDict
</span><span style="color: #2e0d6e;">setObject</span><span style="color: black;">:</span><span style="color: #c41a16;">@"YES"</span><span style="color: black;">
</span><span style="color: #2e0d6e;">forKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"objSelected"</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [tableView
</span><span style="color: #2e0d6e;">cellForRowAtIndexPath</span><span style="color: black;">:indexPath].</span><span style="color: #5c2699;">accessoryType</span><span style="color: black;">
= </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #2e0d6e; font-family: 'Courier New', Courier, monospace;"> UITableViewCellAccessoryCheckmark</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">;</span><span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [tableView
</span><span style="color: #2e0d6e;">reloadData</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> [tableView
</span><span style="color: #2e0d6e;">setNeedsDisplay</span><span style="color: black;">];</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)tableView:(</span><span style="color: #5c2699;">UITableView</span><span style="color: black;">
*)tableView willDisplayCell: </span><span style="color: black;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace;"> (</span><span style="color: #5c2699; font-family: 'Courier New', Courier, monospace;">UITableViewCell</span><span style="color: black; font-family: 'Courier New', Courier, monospace;"> *)cell forRowAtIndexPath:(</span><span style="color: #5c2699; font-family: 'Courier New', Courier, monospace;">NSIndexPath</span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> *)indexPath</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">{</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #5c2699;"> NSDictionary</span><span style="color: black;">
*item = (</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
*)[</span><span style="color: #3f6e74;">tableList</span><span style="color: black;"> </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #2e0d6e; font-family: 'Courier New', Courier, monospace;"> objectAtIndex</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">:indexPath.</span><span style="color: #5c2699; font-family: 'Courier New', Courier, monospace;">row</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">];</span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #5c2699;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #5c2699;"> NSString</span><span style="color: black;">
*SelectedState = (</span><span style="color: #5c2699;">NSString</span><span style="color: black;">*)[item </span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #2e0d6e; font-family: 'Courier New', Courier, monospace;"> objectForKey</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">:</span><span style="color: #c41a16; font-family: 'Courier New', Courier, monospace;">@"objSelected"</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">];</span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #aa0d91;"><br /></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> if</span><span style="color: black;">([SelectedState
</span><span style="color: #2e0d6e;">isEqualToString</span><span style="color: black;">:
</span><span style="color: #c41a16;">@"YES"</span><span style="color: black;">])</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> cell.</span><span style="color: #5c2699;">accessoryType</span><span style="color: black;">
= </span><span style="color: #2e0d6e;">UITableViewCellAccessoryCheckmark</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"></span><span style="color: #aa0d91;"> else</span><span style="color: black;">
</span>
</span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"> cell.</span><span style="color: #5c2699;">accessoryType</span><span style="color: black;">
= </span><span style="color: #2e0d6e;">UITableViewCellAccessoryNone</span><span style="color: black;">;</span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">}</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4KFwP4mc4FHV3xD7u0smiDP0Rea4xp2po7uHtkr16ThYcxYYb3FKyW1quPoczg8z54-7NOTh6p_WkgPiej5JFLPtUxtb9DxAJgFykVbbJlMlocmMoWm6osgivZy6t56IiCJGmq8aydT42/s1600/Screen+shot+2012-03-21+at+4.21.18+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh4KFwP4mc4FHV3xD7u0smiDP0Rea4xp2po7uHtkr16ThYcxYYb3FKyW1quPoczg8z54-7NOTh6p_WkgPiej5JFLPtUxtb9DxAJgFykVbbJlMlocmMoWm6osgivZy6t56IiCJGmq8aydT42/s320/Screen+shot+2012-03-21+at+4.21.18+PM.png" width="164" /></a></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Here,
in </span><span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;">didSelectRowAtIndexPath</span><span style="font-family: inherit;">
I have first retrieved the dictionary values at the particular index
of selection and add one more value based on selection (YES when
selected and NO when deselected) for key <b>objectSelected</b> and thereby
placing a check mark by setting the cell </span><span style="font-family: 'Courier New', Courier, monospace;">accessoryType</span><span style="font-family: inherit;"> to
</span></span><span style="color: #2e0d6e; font-family: 'Courier New', Courier, monospace;">UITableViewCellAccessoryCheckmark</span><span style="color: black; font-family: inherit;">. This will obviously reflect the tablelist array as it is declared
globally. So to make it simple the refreshed tablelist will have an
additional key value pair which differentiates the selected items
from the deselected one. </span>
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;">
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br />
There will be n number of
solutions for any issue of this kind. I would say this is
also a way how I fixed the issue I faced. I hope this might be a
useful post for any one working with UITableview in iPhone.</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com10tag:blogger.com,1999:blog-1298619317057174466.post-7867483523398460872012-03-20T21:51:00.001-07:002012-03-20T22:02:32.169-07:00Write your first NSIS script<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: inherit;">- Mohankumar Deivasigamani</span><br />
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit; font-size: large;"><b>Introduction</b></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; line-height: 150%; text-align: left;">NSIS
(Nullsoft Scriptable Install System) is a professional open source
system to create Windows installers. It has a flexible design and is
therefore very suitable for internet distribution. You can Google
NSIS.</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV2NsO39a-4H9TIBFWz8vAwwJaH9j7kouF0sV8M0rv6U7lToq-1z0jYDp0S_2Q8BLvwKLryklxOLAWXsy-GmsLnLvXu1xvsZR3q6HiYtln0uG89y_d6lEay3sncHoIRLXL7jrLWfSH8Z5z/s1600/Screen+shot+2012-03-21+at+9.57.13+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" height="47" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiV2NsO39a-4H9TIBFWz8vAwwJaH9j7kouF0sV8M0rv6U7lToq-1z0jYDp0S_2Q8BLvwKLryklxOLAWXsy-GmsLnLvXu1xvsZR3q6HiYtln0uG89y_d6lEay3sncHoIRLXL7jrLWfSH8Z5z/s400/Screen+shot+2012-03-21+at+9.57.13+AM.png" width="400" /></span></a></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; line-height: 150%; text-align: left;">This
article introduce how to write and compile your first NSIS script . I
strongly recommend you to correctly install the NSIS on your
computer.</span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;">As
its been tradition to start of with the “Hello World” as first
program , which does nothing more but show a simple "Hello
World" message box . To create a program you'll need a text
editor (like Notepad) or you install HM NIS EDIT it’s a free NSIS
Editor. Ref: <span style="color: blue;"><u><a href="http://hmne.sourceforge.net/">http://hmne.sourceforge.net/</a></u></span></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;"><b><span style="font-size: large;">Let’s
Start</span> </b></span></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; line-height: 150%; text-align: left;">Open
notepad or NSIS editor, you can either type the program shown below
into notepad or just copy-paste it from this article</span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"><b>/*</b></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green; font-family: 'Courier New', Courier, monospace;"><b>
HelloWorld.nsi
- First NSIS Script</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green; font-family: 'Courier New', Courier, monospace;"><b>
Written
by - Mohankumar Deivasigamani</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"><b>*/</b></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%; text-align: left;"><b>#
Name of the installer</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: #0070c0;">Name
</span><span style="color: #a31515;">"CSS
Corp Labs" </span>
</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: #0070c0;">OutFile
</span><span style="color: #a31515;">"CSSCorp.exe"</span></b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: #0070c0;">XPStyle
</span><span style="color: red;">on</span></b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: #0070c0;"> Function
</span>.<span style="color: red;">onInit</span></b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: #00b0f0;"> MessageBox
MB_OK </span><span style="color: #a31515;">"</span>Hello
World …<span style="color: #a31515;">"</span></b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #c00000;"><span style="font-family: 'Courier New', Courier, monospace;"><b> Quit</b></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #0070c0;"><span style="font-family: 'Courier New', Courier, monospace;"><b> FunctionEnd</b></span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #0070c0; font-family: 'Courier New', Courier, monospace;"><b>Section</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #0070c0;"><span style="font-family: 'Courier New', Courier, monospace;"><b>SectionEnd</b></span></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: black; font-family: inherit;">Once
you finish typing your script you should Save the NSIS script file as
HelloWorld.nsi. In fact after making any changes to your source code,
you should always save the file. Once save script done close the
notepad. Right click on the file, you will see two context menus
(Compile NSIS Script & Compile NSIS Script [Choose Compressor])
to compile the NSIS script </span>
</span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjk1B2Hdzj6WyuYEzUYFwmAozScloDQs1hLMyy9ee1YnGApYdntAzdiUyerImq1SlXi6bkoylYpjTLc2BvRYBurWnGVaQguK4aHlFQaN-T1MbVGbMQw3naXzssvNC50J4H2AkJCiZhTJgT/s1600/Screen+shot+2012-03-21+at+9.57.41+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" height="67" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgjk1B2Hdzj6WyuYEzUYFwmAozScloDQs1hLMyy9ee1YnGApYdntAzdiUyerImq1SlXi6bkoylYpjTLc2BvRYBurWnGVaQguK4aHlFQaN-T1MbVGbMQw3naXzssvNC50J4H2AkJCiZhTJgT/s400/Screen+shot+2012-03-21+at+9.57.41+AM.png" width="400" /></span></a></div>
<ol>
<li><div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;"><b>Compile
NSIS Script</b> will use default compressor that you defined in script.</span></div>
</li>
<li><div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;"><b>Compile
NSIS Script [Choose Compressor]</b> will allow you to choose compress
type. (ZLIB, ZLIB (solid), BZIP2, BZIP2 (solid), LZMA, & LZMA
(solid)).</span></div>
</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge1yydTSVm3QF7Fh1pdmDjhyphenhypheniEa5_QzMXQKsQMvOxQxEbC7Y1vMG7mkPmbbWLISYOoMJew-W6-E9MJjgDNNKh0h2Y1HgOr1T7lP4oUmYr8Xe6v4N-QgsvilVgHI2e5IFPEztjm1RmBj1HQ/s1600/Screen+shot+2012-03-21+at+9.58.02+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="322" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEge1yydTSVm3QF7Fh1pdmDjhyphenhypheniEa5_QzMXQKsQMvOxQxEbC7Y1vMG7mkPmbbWLISYOoMJew-W6-E9MJjgDNNKh0h2Y1HgOr1T7lP4oUmYr8Xe6v4N-QgsvilVgHI2e5IFPEztjm1RmBj1HQ/s400/Screen+shot+2012-03-21+at+9.58.02+AM.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;">Once
you choose compressor type and say ok, the script is compiled and
generate exe file in name that you specified in <span style="color: #0070c0;">OutFile
</span>property.</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvdY8AHh2wcrTBA2LbN7rcXiAkMwhOajky4LIndts_a2Gr2LEbGh4L7pxqy83orvRkfrzzgFx3oDsZSVgUaKL5475wIM4CS9d900bgQ__VpWJpSBqCqVOxvVBLN7fJuffVSe7bt0-XeyZk/s1600/Screen+shot+2012-03-21+at+9.58.31+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="295" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhvdY8AHh2wcrTBA2LbN7rcXiAkMwhOajky4LIndts_a2Gr2LEbGh4L7pxqy83orvRkfrzzgFx3oDsZSVgUaKL5475wIM4CS9d900bgQ__VpWJpSBqCqVOxvVBLN7fJuffVSe7bt0-XeyZk/s400/Screen+shot+2012-03-21+at+9.58.31+AM.png" width="400" /></a></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;">After
you compile, <b>Make NSIS</b> window will help you test your
installer by clicking the “Test Installer” button. This creates Installer where your script is saved.</span></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<br /></div>
<div align="JUSTIFY" lang="" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpjbzPTpFSqx7guOjSiuCTbghA8x5gLupYVKJCaLuWXU3sbpn76jilRAhzfPS8pvB9oUiRPtzXdb5yemm3aFi2fz7rkQZyabECBKHuOmm0Tjtf3rPbVOV1KA7Q13eKCg3R1-KVEuGdjeO_/s1600/Screen+shot+2012-03-21+at+9.58.54+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="321" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhpjbzPTpFSqx7guOjSiuCTbghA8x5gLupYVKJCaLuWXU3sbpn76jilRAhzfPS8pvB9oUiRPtzXdb5yemm3aFi2fz7rkQZyabECBKHuOmm0Tjtf3rPbVOV1KA7Q13eKCg3R1-KVEuGdjeO_/s400/Screen+shot+2012-03-21+at+9.58.54+AM.png" width="400" /></a></div>
<span style="line-height: 150%; text-align: left;"><span style="font-family: inherit;">Double click to test the installer.</span></span></div>
<br />
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com6tag:blogger.com,1999:blog-1298619317057174466.post-52354352706050437002012-03-20T03:48:00.000-07:002012-03-20T03:48:46.601-07:00Notifications in iPhone application<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">- Rashid khaleefa</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"> There should be always a
way to provide alerts a informations for any IOS applications. Apple brings
in this feature to IOS through APNs which is Apple Push Notification
Service. Lets have a quick follow through over the process of
activating this service in iPhone app.</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
</div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Before to go through the
steps, listed below are the types of notifications that iOS apps
provide</span></div>
<ul>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><strong>Sounds:</strong>
Plays an audible alert
</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><strong>Alerts/Banners:</strong>
Displays an alert or banner on the screen
</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><strong>Badges:</strong>
Displays an image or number on the application icon
</span></div>
</li>
</ul>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">The Notification view has
made pretty cool from iOS5 onwards that one can just swipe down for notifications from
the top of the screen.</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
</div>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;"><br /></span></b></div>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;">What APNS does ?</span></b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Apple
Push Notification service transports and routes a notification from a
given provider to a given device. APNS actually uses the Push
technology by which the notification from the servers of third party
applications are forwarded to Apple devices.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<b><span style="font-family: inherit;">How
to Enable APNS in our app?</span></b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; line-height: 150%; text-align: left;">To
sum up the steps in order</span></div>
<ul>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Request
for certificate Authority</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Create
app id</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Configuring
AppId for Push Notifications</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Create
provisioning profile</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Provisioning
a device</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Enabling
the profile in Xcode</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Creating
push notification provider.</span></div>
</li>
</ul>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Going into each steps
further
</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;"><br /></span></b></div>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;">Request for certificate
Authority</span></b></div>
<ol>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Open keyChain Access.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Select Certificate
Assistant > request a certificate from certified authority.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Fill up the Email ,
common name fields.
</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click on save to disc
which will save the certificate to your computer.</span></div>
</li>
</ol>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<b><span style="font-family: inherit;">Creating
AppId</span></b></div>
<ol>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Login
to apple member sender and navigate to iOS Provisioning Portal page.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Click
on the Apple Ids tab and select New App ID.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Enter
Description, Bundle Seed Id (select Generate new) and Bundle
Identifier (reverse domain style is recommended)</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Click
on the submit button.</span></div>
</li>
</ol>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="line-height: 150%; text-align: left;">You
can know see the AppId created </span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;"><br /></span></b></div>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;">Configuring AppId for
Push Notifications</span></b></div>
<ol>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click on the
configure option to the right of the AppId listed.</span></div>
</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdWLTwwc_uO4vRDgII0qtBjjLEaVm3W2tl6XWRNzimHvy27TvfSy31tgAyyo9-ghw-KCHd9UWLkp2ixtKhEFaAKXggP4ZemH-Qxa4e2V8G-sbzBWRQKD68fhyphenhyphenXNN6G9qyhdWEEnKUOJJ_m/s1600/Screen+shot+2012-03-20+at+12.45.43+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: inherit;"><img border="0" height="219" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjdWLTwwc_uO4vRDgII0qtBjjLEaVm3W2tl6XWRNzimHvy27TvfSy31tgAyyo9-ghw-KCHd9UWLkp2ixtKhEFaAKXggP4ZemH-Qxa4e2V8G-sbzBWRQKD68fhyphenhyphenXNN6G9qyhdWEEnKUOJJ_m/s400/Screen+shot+2012-03-20+at+12.45.43+PM.png" width="400" /></span></a></div>
<ol start="2">
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Enable the checkbox
for push notifications.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click on the
configure button which is to the right of Development Push SSL
Certificate.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click continue.
</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Upload the CSR file
that is been saved before by clicking choose File button from Submit
Certificate Signing Request screen and click Generate.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click continue opens
next screen where you can download the APNs SSL Certificate.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Double click the
downloaded file to install it in the Keychain Access application.</span></div>
</li>
</ol>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;">Create Provisioning
Profile</span></b></div>
<ol>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click on the
provisioning tab.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Enter profile name
and select certificate, AppId , devices that you need to provision.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click on Submit.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Now you can see a
download button to the right of the provisioning profile created.
Click on it to download the profile.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Drag this file to the
Xcode on the Dock.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">To provision a device
connect the device and drag the profile to the xcode in doc. Open
the organizer from window menu from xcode and you can see the
profile installed on the device.</span></div>
</li>
</ol>
<div align="JUSTIFY" style="line-height: 150%;">
<b><span style="font-family: inherit;">Enabling the profile in
xcode</span></b></div>
<ol>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Create a project in
xcode</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Right click the file
found below <b>Targets</b>. Choose GetInfo opens the target info
window.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Click on the build
tab and select Code Signing Identity.</span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">Select the provision profile that was created before.</span></div>
</li>
</ol>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">This is all you have to
do. And its now time to code for bringing out the notification to our
application. Its easy that you can add some delegates to the
AppDelegate.m file </span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<br /></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;">- (</span><span style="color: #aa0d91;">void</span><span style="color: black;">)applicationDidFinishLaunching:(</span><span style="color: #5c2699;">UIApplication</span><span style="color: black;">*)application</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><b>{ </b></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"></span><span style="color: #007400;"> //
Add registration for remote notifications</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> [[</span><span style="color: #5c2699;">UIApplication</span><span style="color: black;">
</span><span style="color: #2e0d6e;">sharedApplication</span><span style="color: black;">]
</span>
</b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"></span><span style="color: #2e0d6e;"> registerForRemoteNotificationTypes</span><span style="color: black;">:(UIRemoteNotificationTypeAlert
| UIRemoteNotificationTypeBadge | UIRemoteNotificationTypeSound)];</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> </span><span style="color: #007400;">//
Clear application badge when app launches</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> application.applicationIconBadgeNumber
= </span><span style="color: #1c00cf;">0</span><span style="color: black;">;</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><b>}</b></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #007400;"><span style="font-family: 'Courier New', Courier, monospace;"><b>//Fetch
and Format Device Token and Register Important Information to Remote
Server</b></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: #007400;">
</span><br />
</b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)application:(</span><span style="color: #5c2699;">UIApplication</span><span style="color: black;">
*)application
didRegisterForRemoteNotificationsWithDeviceToken:(</span><span style="color: #5c2699;">NSData</span><span style="color: black;">
*)devToken { </span>
</b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"></span><span style="color: #007400;"> //
code to register the device token to the provider</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><b>}</b></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><b><br /></b></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)application:(</span><span style="color: #5c2699;">UIApplication</span><span style="color: black;">
*)application
didFailToRegisterForRemoteNotificationsWithError:(</span><span style="color: #5c2699;">NSError</span><span style="color: black;">
*)error {</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> NSLog(</span><span style="color: #c41a16;">@"Error
in registration. Error: %@"</span><span style="color: black;">,
error);</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><b>}</b></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: black;"><b><br /></b></span></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;">-
(</span><span style="color: #aa0d91;">void</span><span style="color: black;">)application:(</span><span style="color: #5c2699;">UIApplication</span><span style="color: black;">
*)application didReceiveRemoteNotification:(</span><span style="color: #5c2699;">NSDictionary</span><span style="color: black;">
*)userInfo {</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> NSLog(</span><span style="color: #c41a16;">@"remote
notification: %@"</span><span style="color: black;">,[userInfo
</span><span style="color: #2e0d6e;">description</span><span style="color: black;">]);</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> NSDictionary
*apsInfo = [userInfo </span><span style="color: #2e0d6e;">objectForKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"aps"</span><span style="color: black;">];</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> NSString
*alert = [apsInfo </span><span style="color: #2e0d6e;">objectForKey</span><span style="color: black;">:</span><span style="color: #c41a16;">@"alert"</span><span style="color: black;">];</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><b><span style="color: black;"> NSLog(</span><span style="color: #c41a16;">@"Received
Push Alert: %@"</span><span style="color: black;">,
alert);</span></b></span></div>
<div align="LEFT" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"><b>}</b></span></span></div>
<br />
<div align="JUSTIFY" style="line-height: 150%;">
</div>
<div align="JUSTIFY" style="line-height: 150%;">
<b style="font-family: inherit; line-height: 150%; text-align: left;">And now creating a push
notification provider</b></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"> The push notification
provider sends notifications to application through APNs. For this
you must first communicate with the APNs using SSL certificate that
was created earlier. And then you can sent push notification
containing the payload to the APNs. The pay load have to be
constructed as below.</span></div>
<span style="font-family: inherit;"> {</span><br />
<span style="font-family: inherit;"> "aps": {</span><br />
<span style="font-family: inherit;"> "badge": 2,
</span><br />
<span style="font-family: inherit;"> "alert": "This is Labs Team from CSSCorp."},
</span><br />
<span style="font-family: inherit;"> "device_tokens":["<span style="font-size: xx-small;">8DCDDC0CC1E110228DC9C1926B301BA3C3ED7403D6A39D571A1CD81906D7C944</span>"]</span><br />
<span style="font-family: inherit;"> }</span><br />
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">To avoid the burden of
creating a provider you can even use some third party service to make
your work easy. I have tried with UrbanAirShip service. Below are the
steps that I followed.</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><b>Step 1:</b> The first is to
create an account with UrbanAirShip.</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><b>Step 2:</b> Create an a new
application by clicking on create app option on <b>Select an application</b>
tab. Enter the application name, Add application icon. Now select on
push notification support which will expand the options. Now add the
Apple push certificate file which we have already downloaded incase
of an iPhone application.
</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><b>Step 3:</b> This will display
the full details of the app created where you can get the app key,
app secret, device tokens etc:
</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><b>Step 4:</b> Click on push tab.
This opens a window where you can specify the device token, badge,
alert, sound for the notification to be sent. Note that once entering
all these fields the payload will be automatically created.</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;"><b>Step 5:</b> Click on the sent
this will send the notification to the device.</span></div>
<div align="JUSTIFY" style="line-height: 150%;">
</div>
<div align="JUSTIFY" style="line-height: 150%;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit;">To make this work on our
application you have to add the <a href="http://com.urbanairship.filereleases.s3.amazonaws.com/libUAirship-latest.zip">library</a>
to the xcode project created and do a bit modification to your the
Appdelegate.m file.</span></div>
<br />
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: inherit; line-height: 150%; text-align: left;">Further you can download a
sample app using urbanAirShip notification </span><a href="http://com.urbanairship.filereleases.s3.amazonaws.com/PushSample-latest.zip" style="font-family: inherit; line-height: 150%; text-align: left;">here</a><span style="font-family: inherit; line-height: 150%; text-align: left;">
to know how to integrate the library into your xcode project.</span></div>
<br />
<div align="JUSTIFY" style="line-height: 150%;">
<br /></div>
<br />
<br />
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com7tag:blogger.com,1999:blog-1298619317057174466.post-15277098030654035212012-02-24T07:21:00.002-08:002012-02-24T07:21:36.111-08:00Tracking Meeting Request Events in Outlook<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">-Suresh Pitchai</span><br />
<span style="font-family: inherit;">Most
of us use Outlook client application for mailing purpose where we
also schedule meeting. The person who is going to organize the
meeting will send request to the attendees. The receiver who receives the request may or may not accept the request. The sender
will not be aware whether the meeting request has been accepted or
declined by the receiver. In order to overcome this we have a
mechanism for tracking the request and notify the sender. </span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<b style="font-family: inherit; line-height: 150%; text-align: left;">As
I .Net Developer, I have written a small plug-in to solve this
problem</b><span style="font-family: inherit; line-height: 150%; text-align: left;">. I have achieved this by using the COM Component of
‘Microsoft. Office.Interop.Outlook’. This COM Component provides
set of delegate events like ItemEvents_11, ApplicationEvents_11 etc.,
which has the methods ItemAdd, ItemChange, ItemRemove etc., In order
to implement we can follow the below steps and sample code is given
at the end.</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><b><br /></b></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Step
1</b>:
First get all appointments
in Outlook Application. By using the below sample code , we get all
the appointments of outlook application.</span><span style="font-family: Consolas, serif;"><span style="font-size: x-small;">
</span></span>
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: Calibri, serif;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> NameSpace</span>
nameSpace = <span style="color: blue;">null</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> MAPIFolder</span>
calendar = <span style="color: blue;">null</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Items</span>
outlookAppointments = <span style="color: blue;">null</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-indent: 0px;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;"> <span style="color: blue;">public</span></span><span style="font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;">
</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;">void</span><span style="font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;">
OnStartupComplete(</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;">ref</span><span style="font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;">
System.</span><span style="color: #2b91af; font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;">Array</span><span style="font-family: 'Courier New', Courier, monospace; line-height: 150%; text-indent: 0.5in;">
custom)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> nameSpace
= app.GetNamespace(<span style="color: #a31515;">"mapi"</span>);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> nameSpace.Logon(<span style="color: #a31515;">""</span>,
<span style="color: #a31515;">""</span>,
<span style="color: blue;">true</span>,
<span style="color: blue;">true</span>);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> calendar
= nameSpace.GetDefaultFolder</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> (<span style="color: #2b91af;">OlDefaultFolders</span>.olFolderCalendar);</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;"> outlookAppointments
= calendar.Items;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="line-height: 150%; text-align: left;"><span style="font-family: inherit;">The
above code is used to get all the appointment list objects. This
object is stored in “outlookAppointments” items objects.</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: left;">
<span style="font-family: Calibri, serif;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Step
2:</b>
Register the ItemAdd event
in the “OnStartupComplete” Method</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;">outlookAppointments.ItemAdd
+= </span><span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"><span style="color: blue;">new</span> </span><span style="color: #2b91af; font-family: 'Courier New', Courier, monospace; line-height: 150%;">ItemsEvents_ItemAddEventHandler</span><span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;">(outlookAppointments_ItemAdd)</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: Calibri, serif;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: Consolas, serif;"><span style="font-size: x-small;"> </span></span><span style="font-family: Calibri, serif;">
The </span><span style="font-family: 'Courier New', Courier, monospace;">“<span style="color: #2b91af;">ItemsEvents_ItemAddEventHandler</span>”</span><span style="font-family: Calibri, serif;">
</span><span style="font-family: inherit;">event is used to get<span style="background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial;">
the latest</span> meeting request
from your outlook application. The new meeting request added in your
outlook, automatically triggers the “outlookAppointments_ItemAdd” method.
Similarly to register the ItemChange, ItemRemove are as follows:</span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-indent: 0.5in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"><br /></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-indent: 0.5in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;">//this
event trigger, when the meeting request change </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;">outlookAppointments.ItemChange
+= <span style="color: blue;">new</span>
<span style="color: #2b91af;">ItemsEvents_ItemChangeEventHandler</span>(outlookAppointments_ItemChange);</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;">//this
event trigger, when the meeting request decline or deleted.</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;">outlookAppointments.ItemRemove
+= <span style="color: blue;">new</span>
<span style="color: #2b91af;">ItemsEvents_ItemRemoveEventHandler</span>(outlookAppointments_ItemRemove);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><b style="line-height: 150%;"><br /></b></span><br />
<span style="font-family: inherit;"><b style="line-height: 150%;">Step 3:</b><span style="line-height: 150%;"> Add
the below method in your page.</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-family: Consolas, serif;"><span style="font-size: x-small;"> </span></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-family: Consolas, serif; font-size: 9pt;"> </span><span style="font-family: 'Courier New', Courier, monospace;"> void</span></span><span style="font-family: 'Courier New', Courier, monospace;">
outlookAppointments_ItemAdd(<span style="color: blue;">object</span>
Item)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> void</span>
outlookAppointments_ItemChange(<span style="color: blue;">object</span>
Item)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> void</span>
outlookAppointments_ItemRemove()</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"> You
can get details about the appointment body, duration, start time, end
time, decline date, accepted date and etc., using the “item”
object. The below sample code is used to get the some details.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="line-height: 150%; text-align: left;"> <span style="color: blue; font-family: Consolas, serif; font-size: x-small;"> </span></span><br />
<span style="line-height: 150%; text-align: left;"><span style="color: blue; font-family: 'Courier New', Courier, monospace;"> void</span></span><span style="font-family: 'Courier New', Courier, monospace;"><span style="line-height: 150%; text-align: left;">
outlookAppointments_ItemChange(</span><span style="color: blue; line-height: 150%; text-align: left;">object</span><span style="line-height: 150%; text-align: left;">
Item)</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> AppointmentItem</span>
appointment = (Item <span style="color: blue;">as</span>
<span style="color: #2b91af;">AppointmentItem</span>);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> string</span>
AppointmentDetails = <span style="color: blue;">string</span>.Empty;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> AppointmentDetails
= AppointmentDetails + <span style="color: #a31515;">"Subject
:: "</span>
+
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> appointment.Subject
+ <span style="color: #a31515;">"\r\n"</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> AppointmentDetails
= AppointmentDetails + <span style="color: #a31515;">"Body
:: "</span>
+</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> appointment.Body +</span><span style="font-family: 'Courier New', Courier, monospace;"> </span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #a31515;"> "\r\n"</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> AppointmentDetails
= AppointmentDetails + <span style="color: #a31515;">"Action
:: "</span>
+
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> appointment.Action.ToString()
+ <span style="color: #a31515;">"\r\n"</span>;
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> <span style="line-height: 150%;">}</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; line-height: 150%;">This gives
information about the receivers action.</span></div>
<br />
<br />
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: Consolas, serif;"><span style="font-size: x-small;"><br /></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: Consolas, serif;"><span style="font-size: x-small;"><br /></span></span></div>
<br />
<br />
<br />
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com6tag:blogger.com,1999:blog-1298619317057174466.post-17630814004109744882012-01-22T00:07:00.000-08:002012-01-23T05:09:43.284-08:00Quick walkthrough on Re-enabling MS Office Add-ins<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;"> - Mohankumar Deivasigamani</span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">Hope my last two blog
posts helped you to know more on
creating a MS Office add-in using .Net.<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;"><a href="http://cssinnovations.blogspot.com/2011/11/create-your-own-ms-office-add-ins-using.html" style="color: blue;">Create
Ms Office add-ins</a><o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;"><a href="http://cssinnovations.blogspot.com/2011/11/adding-custom-ribbon-menu-in-ms-office_23.html" style="color: blue;">Adding
custom ribbon menu</a><o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">In some cases the
Add-ins might be disabled. The following link will help to know the types of
disables and the way how we can re-enable those. <o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;"> <a href="http://msdn.microsoft.com/en-us/library/ms268871.aspx" style="color: blue;">Re-enable an
Add-in That Has Been Disabled</a><o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">Moreover there are few
things to be checked out while Ms Office add-ins are not loaded.<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><b><span lang="EN-IN" style="line-height: 150%;"><span style="font-size: small;">Check list to be followed while MS Office add-ins are not
getting loaded</span><o:p></o:p></span></b></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<div style="text-align: left;">
<span style="font-size: small;"><b><span lang="EN-IN" style="line-height: 150%;">Step 1</span></b></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">:
Make sure <b>LoadBehavior</b> (DWORD) value
is 3, refer load behaviour key in below registry path HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Office\Word\Addins\</span></div>
<div style="text-align: left;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">YourApplication.Connect<o:p></o:p></span></div>
</div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><b><span lang="EN-IN" style="line-height: 150%;">Step 2:</span></b></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">
Check whether <b>CodeBase</b> is referred
to your application Dynamic Link Library (dll)<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><b><span lang="EN-IN" style="line-height: 150%;">Step 3:
</span></b></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">Make sure you specify mscoree.dll in you
registry entry. At the same time check whether mscoree.dll has registered
properly in your machine<span style="color: blue;"> <a href="http://en.wikipedia.org/wiki/Global_Assembly_Cache" style="color: blue;">Global Assembly Cache</a></span> (GAC).<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><b><span lang="EN-IN" style="line-height: 150%;">Step 4:</span></b></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">
As the last step, download appropriate <i><span style="font-style: normal;"><a href="http://msdn.microsoft.com/en-us/library/aa302338.aspx#whypriinterop_topic1a" style="color: blue;">Primary Interop Aassemblies</a> (PIA)</span></i>
and install in your machine.<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><b><span lang="EN-IN" style="line-height: 150%;">Step 5:</span></b></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">
Finally, fusion log will help developers to fix dll level issues.<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><b><span lang="EN-IN" style="line-height: 150%;">Fusion Logs – Identifying Source of Assembly Load Failures<o:p></o:p></span></b></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">Fusion logs help in
identifying the source of failed assembly binds. Setting the following registry
values will help to enable fusion logs:<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">Open regedit.exe and go
to: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Fusion<o:p></o:p></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">Add the following
values:<o:p></o:p></span></div>
<ul style="font-family: inherit; text-align: justify;">
<li><span lang="EN-IN" style="font-size: small; line-height: 150%;"><span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">DWORD
ForceLog set value to 1<o:p></o:p></span></li>
<li><span lang="EN-IN" style="font-size: small; line-height: 150%;"><span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">DWORD
LogFailures set value to 1<o:p></o:p></span></li>
<li><span lang="EN-IN" style="font-size: small; line-height: 150%;"><span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">DWORD
LogResourceBinds set value to 1<o:p></o:p></span></li>
<li><span lang="EN-IN" style="font-size: small; line-height: 150%;"><span style="font-style: normal; font-variant: normal; font-weight: normal; line-height: normal;"> </span></span><span lang="EN-IN" style="font-size: small; line-height: 150%;">String
LogPath set value to C:\FusionLog\ - (Directory named C:\FusionLog should be
created and the last \ is important while writing in the registry).<o:p></o:p></span></li>
</ul>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><br /></span></div>
<div class="NoSpacing" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span lang="EN-IN" style="font-size: small; line-height: 150%;">If there is a “Could not
load assembly” exception or if your office add-ins failed to load, open
C:\FusionLog in the windows explorer. Open the folder named Default and then
the folder whose name matches the application in question. If MS Word failed to
load the add-ins, open the folder named WINWORD.exe to find a detailed
diagnostic report file.<o:p></o:p></span></div>
</div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com3tag:blogger.com,1999:blog-1298619317057174466.post-83343747341337911452012-01-10T07:37:00.000-08:002012-01-11T02:42:10.849-08:00Programmatically Garbage Collection - Generation<div dir="ltr" style="text-align: left;" trbidi="on">
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">- Suresh Pitchi</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">Hope
most of us know that what garbage collection is. But, how many people
of us know how it works and how the CLR manage allocated class
instance via garbage collection?. First we will explain
programmatically how garbage collection is implemented, using
System.GC class type are explained below and how object will be
stored on Heap and Stack.</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;"><b>Object
stored in Heap and Stack.</b></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;">Take
the example below, how the call reference from heap and stack</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> public</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">class</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
</span><span style="color: #2b91af; font-family: 'Courier New', Courier, monospace; line-height: 150%;">GenerationObectExample</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> public</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">int</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
id { </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">get</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">;
</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">set</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">;
}</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> public</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">string</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
name { </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">get</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">;
</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">set</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">;
}</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> public</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
GenerationObectExample();</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> </span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">string</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
GeneationMethod()</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> return</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
</span><span style="color: #a31515; font-family: 'Courier New', Courier, monospace; line-height: 150%;">"Gereation
objection"</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">;</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"> }</span></div>
<div style="margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">class </span><span style="color: blue; font-family: 'Courier New', Courier, monospace;"><span style="line-height: 24px;">garbage</span></span><br />
<div style="line-height: 150%;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;">{</span></div>
<div style="line-height: 150%;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> </span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">void</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> CallGarbageCollector(</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">)</span></div>
</div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: #2b91af; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> Console</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">.WriteLine(“</span><span style="color: #a31515; font-family: 'Courier New', Courier, monospace; line-height: 150%;">print
out generation</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">”);</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: green; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> //Object
stored on the heap</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: #2b91af; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> GenerationObectExample</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;">
myobject = </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 150%;">new</span><span style="color: black; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> </span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: #2b91af; font-family: 'Courier New', Courier, monospace;"> GenerationObectExample</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">();</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: green; font-family: 'Courier New', Courier, monospace; line-height: 150%;"> //object
stored in reference</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"> myobject.GeneationMethod();</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace; line-height: 150%;">}</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in; text-indent: 0.5in;">
<span style="font-family: inherit;">Once the Class is
defined it can be allocated with any number of objects using C# new
keyword. The “new” keyword returns a reference to the object on
the heap not on the actual object. If we declare the local variable
in the method, it will store in the stack. When we invoke the member
on the object using the C# dot or period operator, the reference are
stored for the object. Structures are value type that are always
allocated on the stack and never place on the .NET managed heap. Heap
are allocated only when you are creating instance of class.</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;"><b>Object
Lifetime.</b></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in; text-indent: 0.5in;">
<span style="font-family: inherit;">In C# application
within the .NET runtime environment it will take care of managed heap
without direct intervention of it. Now we are going to know how the
Garbage Collector destroys the object. Garbage collector removes the
object from heap, once it is unreachable by any part of code.</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-size: small;"><span style="color: blue;"><span style="font-family: 'Times New Roman', serif; font-size: 9pt;"> </span></span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">void</span><span style="color: black;">
GenerationMethod()</span></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> {</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> //it
will distoryed when the method return the value</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: 'Courier New', Courier, monospace; font-size: small;"><span style="color: #2b91af;"> Generationobject</span><span style="color: black;">
myObeject = </span><span style="color: blue;">new</span><span style="color: black;"> </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: #2b91af; font-family: 'Courier New', Courier, monospace;"> Generationobject</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">(</span><span style="color: #a31515; font-family: 'Courier New', Courier, monospace;">"genrationZero"</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">, </span><span style="color: #a31515; font-family: 'Courier New', Courier, monospace;">"generationOne"</span><span style="color: black; font-family: 'Courier New', Courier, monospace;">);</span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> myObeject.GenerationMethod();</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-size: small;"><span style="color: black;"><span style="font-family: 'Courier New', Courier, monospace;"> }</span></span>
</span>
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;"> Take the above
example, when the method returns the value, the Garbage Collector
start working to clear the object. But, how it will work. It is like
Generation concept. The idea behind generation is simple. The
Generation has three stages.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;">Generation 0,
Generation 1, Generation 2.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;">Generation 0 :
Identifies a new allocation object that is, when application create
fresh object that are marked as Generation 0. In this stage GC clear
the object from heap.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;">Generation 1 :
Identifies an object that has survived a garbage collection. In this
stage, GC that is not able to clear from Generation 0 will be moved
to Generation 1.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;"><span style="line-height: 150%;">Generation 2 :
Identifies an object that has survived more than one sweep of the
garbage collection. In this stage, what exactly happen, when GC
cannot clear object in generation 0 and 1, it move then gen2. GC
spent more time on Generation 0 rather than </span><span style="line-height: 24px;">Generation</span><span style="line-height: 150%;"> 1 and Generation
2.</span></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
<span style="font-family: inherit;">Here the example
explain how to generation move to stage by stage.</span><br />
<span style="color: blue; font-family: 'Courier New', Courier, monospace; text-align: left;">class G</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: normal; text-align: left;"><span style="line-height: 24px;">arbageCollection</span></span><br />
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: normal; text-align: left;"><span style="line-height: 24px;">{</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-family: Consolas, monospace; font-size: 9pt;"> </span><span style="font-family: 'Courier New', Courier, monospace;">static</span><span style="font-family: Consolas, monospace; font-size: 9pt;"> </span></span><span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">void</span>
Main(<span style="color: blue;">string</span>[]
args)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> //print
out estimatied nunber of bytes on heap</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\nEstimatied
number of bytes on heap : {0}"</span>,
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #2b91af; font-family: 'Courier New', Courier, monospace;"> GC.GetTotalMemory(<span style="color: blue;">false</span>));</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> //Max
Generation is zero based</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\nThis
OS has {0} object generation.\n"</span>,
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> GC</span>.MaxGeneration);
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> //print
out generation of Generationobject class</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Generationobject</span>
objectGeneration=<span style="color: blue;">new</span>
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Generationobject</span>(<span style="color: #a31515;">"genrationZero"</span>,<span style="color: #a31515;">"generationOne"</span>);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\n"</span>,
objectGeneration.ToString());</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\nPrint
out GENERATION of Generationobject : </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #a31515; font-family: 'Courier New', Courier, monospace;"> {0}"</span><span style="font-family: 'Courier New', Courier, monospace;">,</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> GC</span>.GetGeneration(objectGeneration));</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> //make
the ton of object is testing purpose</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> object</span>[]
tonsofObject=<span style="color: blue;">new</span>
<span style="color: blue;">object</span>[50000];</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> for</span>(<span style="color: blue;">int</span>
i=0;i<50000;i++)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> tonsofObject[i]=<span style="color: blue;">new</span>
<span style="color: blue;">object</span>();</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="line-height: 24px;"> </span></span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: green; line-height: 150%;">//collect
only generation 0 object</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> GC</span>.Collect(0,<span style="color: #2b91af;">GCCollectionMode</span>.Forced);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> GC</span>.WaitForPendingFinalizers();</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green; line-height: 150%;"><span style="font-family: 'Courier New', Courier, monospace;"><br /></span></span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="line-height: 24px;"> </span><span style="color: green; line-height: 150%;">//print
out the generation of refer Generationobject class</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\nGENERATION
of refer Generationobject class </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #a31515; font-family: 'Courier New', Courier, monospace;"> is : {0}"</span><span style="font-family: 'Courier New', Courier, monospace;">,</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> GC</span>.GetGeneration(objectGeneration));</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> //see
the tonofobject[9000] is still alive</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> if</span>
(tonsofObject[9000] != <span style="color: blue;">null</span>)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"See
the tonof object[9000] is still alive </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #a31515; font-family: 'Courier New', Courier, monospace;"> :{0}"</span><span style="font-family: 'Courier New', Courier, monospace;">,</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> GC</span>.GetGeneration(tonsofObject[9000]));</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-family: 'Courier New', Courier, monospace;"> else</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"Tonofobject[9000]
is no longer alive"</span>);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: green;"><span style="font-family: 'Courier New', Courier, monospace;"> //print
out how many time a generation has been swept</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\nGENERATION
0 has been swept {0} </span>
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #a31515;"> times",</span><span style="color: #2b91af;">GC</span><span style="color: #a31515;">.CollectionCount(0));</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\nGENERATION
1 has been swept {0} </span>
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #a31515;"> times",</span><span style="color: #2b91af;">GC</span><span style="color: #a31515;">.CollectionCount(1));</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.WriteLine(<span style="color: #a31515;">"\nGENERATION
2 has been swept {0} </span>
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #a31515;"> times",</span><span style="color: #2b91af;">GC</span><span style="color: #a31515;">.CollectionCount(2));</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> Console</span>.ReadLine();
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span><br />
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="margin-bottom: 0in;">
<b><br /></b></div>
<div style="margin-bottom: 0in;">
<b>Output :</b></div>
<div style="margin-bottom: 0in;">
<b><br /></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCXL7ntcTE3TbIFAN7HBCAt7LbpkReJClQlkWUP4HDrZ2EgtCzOCaVOcRXC1NLLUlB-_xZvTwS2oAyQ2H7fJXeSiigiUHmsiETGCp_HJ9AMytr3nnHekVkvRroThTqS5LBxv9wbwo1CB2s/s1600/Screen+shot+2012-01-10+at+8.53.11+PM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjCXL7ntcTE3TbIFAN7HBCAt7LbpkReJClQlkWUP4HDrZ2EgtCzOCaVOcRXC1NLLUlB-_xZvTwS2oAyQ2H7fJXeSiigiUHmsiETGCp_HJ9AMytr3nnHekVkvRroThTqS5LBxv9wbwo1CB2s/s1600/Screen+shot+2012-01-10+at+8.53.11+PM.png" /></a></div>
<div style="margin-bottom: 0in;">
<b><br /></b></div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="line-height: 150%;">The above example explain how to sweep the generation from one
stage to another stage of </span><span style="color: green; line-height: 150%;">Generationobject</span><span style="line-height: 150%;">
class. The GC swept two time from Generation 0 and one time from
Generation 1.</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0.14in;">
<span style="font-family: inherit;"><span style="line-height: 150%;">
So here this is some basic understanding know of how the </span><span style="line-height: 24px;">Garbage</span><span style="line-height: 150%;"> collection works internally from the .NET perspective. </span></span></div>
<br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in; text-indent: 0.5in;">
<span style="font-family: 'Times New Roman', serif; line-height: 150%; text-align: left; text-indent: 0.5in;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in; text-indent: 0.5in;">
<span style="font-family: 'Times New Roman', serif; line-height: 150%; text-align: left; text-indent: 0.5in;"><br /></span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in; text-indent: 0.5in;">
<span style="font-family: 'Times New Roman', serif;"><span style="font-size: small;"><br /></span></span></div>
<br />
<div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.07in;">
</div>
<div style="line-height: 150%; margin-bottom: 0in; margin-left: 0.5in; margin-top: 0.07in;">
<span style="color: blue; font-family: Consolas, monospace;"><span style="font-size: 12px;"><br /></span></span></div>
<br />
<br />
<br />
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com52tag:blogger.com,1999:blog-1298619317057174466.post-52024746333530687612011-12-30T05:27:00.000-08:002011-12-30T05:27:03.320-08:00Consumption of WCF Service during development<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: inherit; line-height: 150%; text-align: justify;">-Balaji Ramasamy</span><br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">As I
was working on project, it demanded to run the WCF service during
development which was a challenging task for a novice developer. We
successfully developed the WCF service by implementing the service
contract interface & service behavior class. The above developed
WCF service needs to be consumed by the client application, which
will interact with the end point of the services and provides the
requested response. To successfully build and test the application,
the WCF service needs to be exposed, which will be consumed by client
application with the help of svcutil tool. Since the WCF service is a
class library, we can’t run it as service.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">So
here comes the question of how to run the WCF service to generate and
consume the service proxy in my client windows application during
development. We are very much aware of hosting the service via the
console application, winforms application, windows service, IIS, WAS
to host the WCF service. Initially we ran the WCF service as windows
service, assuming it as a right decision, which resulted in multiple
installation and un-installation of windows service. To avoid such
painful process during development, we planned to run the WCF service
in console application. But how to run in console application? Here
comes the ServiceHost runtime, which will enable to the WCF service
to load the service class, set up the endpoints and channel
listeners, which provides your service class an “ecosystem” to
live and operate in.
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">You
can either instantiate a ServiceHost class yourself in a console app,
a Windows service, or even a Winforms app, and thus make your WCF
service class available to the outside world - or you can delegate
that work to IIS or WAS. Even IIS or WAS will use a ServiceHost to
host your WCF service - they just do it automatically behind the
scenes.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;">The
following is the console application code to run the WCF service</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">internal</span>
<span style="color: blue;">class</span>
<span style="color: #2b91af;">Program</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
private</span>
<span style="color: blue;">static</span>
<span style="color: blue;">void</span>
Main(<span style="color: blue;">string</span>[]
args)</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;">
try</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> StartService();</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"Service
is running..."</span>);</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> <span style="color: #2b91af;">Console</span>.WriteLine(<span style="color: #a31515;">"Press
key to end..."</span>);</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> <span style="color: #2b91af;">Console</span>.ReadLine();</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> StopService();</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
catch</span>
(<span style="color: #2b91af;">Exception</span>
ex)</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> <span style="color: #2b91af;">//Log
the Exception</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue; line-height: 150%; text-align: left;">internal</span><span style="line-height: 150%; text-align: left;">
</span><span style="color: blue; line-height: 150%; text-align: left;">static</span><span style="line-height: 150%; text-align: left;">
</span><span style="color: #2b91af; line-height: 150%; text-align: left;">ServiceHost</span><span style="line-height: 150%; text-align: left;">
myServiceHost = </span><span style="color: blue; line-height: 150%; text-align: left;">null</span><span style="line-height: 150%; text-align: left;">;</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue; line-height: 150%; text-align: left;">internal</span><span style="line-height: 150%; text-align: left;">
</span><span style="color: blue; line-height: 150%; text-align: left;">static</span><span style="line-height: 150%; text-align: left;">
</span><span style="color: blue; line-height: 150%; text-align: left;">void</span><span style="line-height: 150%; text-align: left;">
StartService()</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;">
try</span></div>
<div align="LEFT" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="LEFT" style="margin-bottom: 0in; margin-left: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;">myServiceHost
= <span style="color: blue;">new</span>
<span style="color: #2b91af;">ServiceHost</span>(<span style="color: blue;">typeof</span>(<span style="color: blue;">[namespaceName.ServiceBehaviourClassName]</span>));</span></div>
<div align="LEFT" style="margin-bottom: 0in; text-indent: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;">myServiceHost.Open();</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
catch</span>
(<span style="color: #2b91af;">Exception</span>
ex)</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in; text-indent: 0.5in;">
<span style="color: #2b91af;"><span style="font-family: 'Courier New', Courier, monospace;">//Log
the Exception</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue; line-height: 150%; text-align: left;">internal</span><span style="line-height: 150%; text-align: left;">
</span><span style="color: blue; line-height: 150%; text-align: left;">static</span><span style="line-height: 150%; text-align: left;">
</span><span style="color: blue; line-height: 150%; text-align: left;">void</span><span style="line-height: 150%; text-align: left;">
StopService()</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;">
try</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in; text-indent: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">if</span>
(myServiceHost.State != <span style="color: #2b91af;">CommunicationState</span>.Closed)</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in; text-indent: 0.5in;">
<span style="font-family: 'Courier New', Courier, monospace;">myServiceHost.Close();</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
catch</span>
(<span style="color: #2b91af;">Exception</span>
ex)</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in; text-indent: 0.5in;">
<span style="color: #2b91af;"><span style="font-family: 'Courier New', Courier, monospace;">//Log
the Exception</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">} </span>
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: inherit;">And the Application
configuration includes be the following</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"><br /></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"><</span><span style="color: #a31515;">system.serviceModel</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">services</span><span style="color: blue;">></span></span></div>
<div align="LEFT" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">service
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">[namespaceName.ServiceBehaviourClassName]</span>"<span style="color: blue;">
</span>
</span></div>
<div align="LEFT" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: red;"> behaviorConfiguration</span><span style="color: blue;">="metadataSupport">
</span>
</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">host</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">baseAddresses</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">add</span><span style="color: blue;">
</span><span style="color: red;">baseAddress</span><span style="color: blue;">=</span>"<span style="color: blue;">[EndPoint
Address]</span>"<span style="color: blue;">
/></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> </</span><span style="color: #a31515;">baseAddresses</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> </</span><span style="color: #a31515;">host</span><span style="color: blue;">></span></span></div>
<div align="LEFT" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">endpoint</span><span style="color: blue;">
</span><span style="color: red;">address</span><span style="color: blue;">=</span>""<span style="color: blue;">
</span><span style="color: red;">binding</span><span style="color: blue;">=</span>"<span style="color: blue;">[Binding
Name]</span>"<span style="color: blue;">
</span>
</span></div>
<div align="LEFT" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: red;"> contract</span><span style="color: blue;">="[namespaceName.ServiceContractName]"
"/></span></span></div>
<div align="LEFT" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">endpoint</span><span style="color: blue;">
</span><span style="color: red;">address</span><span style="color: blue;">=</span>"<span style="color: blue;">mex</span>"<span style="color: blue;">
</span><span style="color: red;">binding</span><span style="color: blue;">=</span>"<span style="color: blue;">mexNamedPipeBinding</span>"<span style="color: blue;">
</span>
</span></div>
<div align="LEFT" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: red;"> contract</span><span style="color: blue;">="IMetadataExchange"/></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> </</span><span style="color: #a31515;">service</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
</</span><span style="color: #a31515;">services</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
<</span><span style="color: #a31515;">behaviors</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">serviceBehaviors</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">behavior</span><span style="color: blue;">
</span><span style="color: red;">name</span><span style="color: blue;">=</span>"<span style="color: blue;">metadataSupport</span>"<span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">serviceMetadata</span><span style="color: blue;">
/></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">serviceDebug</span><span style="color: blue;">
</span><span style="color: red;">includeExceptionDetailInFaults</span><span style="color: blue;">=</span>"<span style="color: blue;">true</span>"<span style="color: blue;">
/></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> </</span><span style="color: #a31515;">behavior</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> </</span><span style="color: #a31515;">serviceBehaviors</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
</</span><span style="color: #a31515;">behaviors</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"></</span><span style="color: #a31515;">system.serviceModel</span><span style="color: blue;">></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Note:</b> Application
Configuration may vary from one binding to another binding. Please
check Microsoft MSDN site for more details about bindings and its
related configuration</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: inherit;">Now run the service and
its ready to consume in the client application during development
stage of our application</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-family: inherit;">References:</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: blue; font-family: inherit;"><u><a href="http://msdn.microsoft.com/en-us/library/bb332338.aspx">http://msdn.microsoft.com/en-us/library/bb332338.aspx</a></u></span></div>
<br />
<br />
<br />
<br />
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com18tag:blogger.com,1999:blog-1298619317057174466.post-59682514341833290332011-12-21T21:59:00.000-08:002011-12-21T22:08:15.687-08:00Integrate Microsoft Lync 2010 to your .Net Application<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="line-height: 150%; margin-bottom: 0in; text-align: right;">
<div style="text-align: right;">
<span style="font-family: inherit;">- Mohankumar Deivasigamani</span></div>
</div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;">This
post focus on the process to integrate Microsoft Lync 2010 to your
.Net application.</span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="line-height: 150%; text-align: justify;">
<span style="font-family: inherit;"><b>Microsoft
Lync</b>
is an <a href="http://en.wikipedia.org/wiki/Instant_messaging">instant
messaging</a> <a href="http://en.wikipedia.org/wiki/Client_%28computing%29">clients</a>
. It is a replacement for <a href="http://en.wikipedia.org/wiki/Windows_Messenger">Windows
Messenger</a> and has added feature set that is mainly targeted
towards corporate environments.</span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span style="font-family: inherit;"><br /></span></b></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Note:</b>
For this tutorial I assume that you have Lync 2010 running on your
machine. Also your machine has Visual Studio 2010.</span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit; line-height: 150%; text-align: left;">So
here we go with the steps for integration</span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" lang="en-IN" style="margin-bottom: 0in;">
<span style="color: black; font-family: inherit;"><b>Step 1:</b> Download and install </span><span style="line-height: 24px;">Lync SDK</span><span style="color: black; font-family: inherit;"> 2010 (free) on your machine.</span></div>
<div align="JUSTIFY" lang="en-IN" style="margin-bottom: 0in;">
<span style="color: black;"><span style="color: blue; font-family: inherit;"><u><a href="http://www.microsoft.com/download/en/details.aspx?id=18898">http://www.microsoft.com/download/en/details.aspx?id=18898</a></u></span></span></div>
<div align="JUSTIFY" lang="en-IN" style="margin-bottom: 0in;">
<b><br /></b></div>
<div align="JUSTIFY" lang="en-IN" style="margin-bottom: 0in;">
<b>Step 2:</b> Open Visual Studio 2010 and create a “New Project”. Select a “WPF Application” template for this project.</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Oz5h7b0ueQgD8MKQ3dMzDTs9Z4MXUT_wq4m9V5B_8CGURfrQMMI99ZlYsF3IN8-cPggfEUc573PkfkynP5PYj8SUg7x8eceJMMmGJ37Uvf1PoetmP1V9HkHJTUXTDdzTk_6Dwb9PYcWC/s1600/Screen+shot+2011-12-22+at+10.53.08+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg3Oz5h7b0ueQgD8MKQ3dMzDTs9Z4MXUT_wq4m9V5B_8CGURfrQMMI99ZlYsF3IN8-cPggfEUc573PkfkynP5PYj8SUg7x8eceJMMmGJ37Uvf1PoetmP1V9HkHJTUXTDdzTk_6Dwb9PYcWC/s1600/Screen+shot+2011-12-22+at+10.53.08+AM.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;"><b><br /></b></span></span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: inherit;"><b>Step
3:</b> <b>Lync SDK</b> controls will be available in "Tool box", You
can drag the control to your form. For example here I am using few
controller like “MyPresenceChooser”, ContactSearch &
ContactSearchResultList.</span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUxaOSLLODK9w4SRdn8t1pm676LZhqbLYuINhriSLZS8g4PzYLOHD2_S6m5pJsJogT1ATQGB2vc1s0BnzHAcUfDNearOXW7spnkFGskj131Rb3P6GsAwhs8FoI0xAbZVFLMMfTzuste0Lr/s1600/Screen+shot+2011-12-22+at+10.56.10+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjUxaOSLLODK9w4SRdn8t1pm676LZhqbLYuINhriSLZS8g4PzYLOHD2_S6m5pJsJogT1ATQGB2vc1s0BnzHAcUfDNearOXW7spnkFGskj131Rb3P6GsAwhs8FoI0xAbZVFLMMfTzuste0Lr/s1600/Screen+shot+2011-12-22+at+10.56.10+AM.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><span style="color: black;"><b>Step
4:</b> Test your application by clicking “Run” from your Visual
Studio. The output appears as below, where you see the <b>Lync 2010</b>
gets integrated to your application. </span>
</span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: inherit;"><br />
</span></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-family: inherit;">To
make it more effective here below i am comparing the output of the
application to the Lync 2010 installed in your machine.</span></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL7fOFRcY5bZAiBtTFJlofvNM6ue6TccpKW6olYLZm83WgfoLzzFyJwxFuDuQH10e0tMP0_1SJ6uwdgARt2Fpm9XLRNoOrh6FbjTK8kGaTnsFY_0uIXkT0RSmAJeujvaWeu1gV81uNb-UB/s1600/Screen+shot+2011-12-22+at+10.58.21+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiL7fOFRcY5bZAiBtTFJlofvNM6ue6TccpKW6olYLZm83WgfoLzzFyJwxFuDuQH10e0tMP0_1SJ6uwdgARt2Fpm9XLRNoOrh6FbjTK8kGaTnsFY_0uIXkT0RSmAJeujvaWeu1gV81uNb-UB/s1600/Screen+shot+2011-12-22+at+10.58.21+AM.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6k6nzVMKOsWECz8cAeI8u5nzpj5swrW-fIFMySEkI3WM_sKCNF6tqzyiTsDEpKiLISbJgrrl9x8YmyJaW3AOfTKnQhB7A_foNuB7SdKYKfaYkrV1XH3aFz7JRrd6a-22b33HuGumPNq2j/s1600/Screen+shot+2011-12-22+at+10.59.51+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi6k6nzVMKOsWECz8cAeI8u5nzpj5swrW-fIFMySEkI3WM_sKCNF6tqzyiTsDEpKiLISbJgrrl9x8YmyJaW3AOfTKnQhB7A_foNuB7SdKYKfaYkrV1XH3aFz7JRrd6a-22b33HuGumPNq2j/s1600/Screen+shot+2011-12-22+at+10.59.51+AM.png" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div align="JUSTIFY" lang="en-IN" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div align="JUSTIFY" lang="en-IN" style="margin-bottom: 0in;">
<span style="color: black; font-family: inherit;">So
thats it for the basic integration and now you can start customizing and
adding more stuffs with your code.</span></div>
<div align="JUSTIFY" lang="en-IN" style="margin-bottom: 0in;">
<br /></div>
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com8tag:blogger.com,1999:blog-1298619317057174466.post-57431986465380583562011-12-09T21:19:00.001-08:002011-12-09T21:58:29.733-08:00Azure - BLOB Storage<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="line-height: 150%; margin-bottom: 0in; text-align: right;">
-Balaji Ramasamy</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
Windows
Azure offers four core storage services namely Blob, Table, Queue and
Drive, which are accessible via multiple instances / applications
simultaneously representing a dedicated storage instead of temporary
storage. The simplest way to store with Windows Azure is Binary Large
Object (BLOB) Service. In this blog, I provide highlights of storage
services offered by MS Azure and compared the same with <span style="color: blue;"><u><a href="http://aws.amazon.com/s3/">AWS
S3</a></u></span> (Simple Storage Service) that enables you to store
data in the AWS cloud.
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
We can
store the files in three ways. The file size with 64MB or lesser size
can be uploaded as a single BLOB. If the file size exceeds 64MB then
we can go for BLOCK Blob or PAGE Blob.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
The
<b>BLOCK Blob</b> supports 200GB of total file size and each block
should be maximum of 4MB and its identified by BlockID which is
unique within the Blob. Block ID is Base64 encoded string of same
length and its values can be duplicated in different blobs.</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
When
using base-64 encoding, the pre-encoded string must be 64 bytes or
less. The maximum of 50,000 blocks is allowed for each blob. The
maximum of 1,00,000 uncommitted blocks is allowed, its total size
should be 400GB and finally the uncommitted blocks will be garbage
collected after a week. We have to call PutBlockList to commit the
uploaded blocks.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
The
<b>PAGE Blob</b> supports 1TB of total size and each page should be
maximum of 4MB and its collection of 512-bytes. To create a page
blob, initialize the page blob and specify the maximum size. Writes
to page blobs happens in-place and are immediately committed to the
blob. It’s optimized for random read and writes operation.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<b><br /></b></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<b>BLOB Storage Local
Testing</b></div>
<ol>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
Local
Storage is provided by Windows Azure to test cloud storage with help
of Storage Emulator.</div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
Blobs
in the Windows Azure storage emulator are limited to 2 GB.</div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
When
making a request against the local storage service, specify the
local hostname and Blob service port as 127.0.0.1:10000, followed by
the local storage account name</div>
</li>
</ol>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span class="Apple-style-span" style="line-height: 24px;">The
following is a comparison of Amazon Simple Storage Service and Azure
BLOB Storage.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="margin-bottom: 0in; page-break-before: always;">
<span class="Apple-style-span" style="font-family: inherit; font-size: x-small;"><br /></span></div>
<table border="1" bordercolor="#000000" cellpadding="6" cellspacing="0">
<colgroup><col width="117*"></col>
<col width="139*"></col>
</colgroup><tbody>
<tr valign="TOP">
<td width="46%"><div align="CENTER" style="margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">AMAZON</span></b></div>
<div align="CENTER">
<span style="color: blue;"><span style="font-family: inherit;"><b>Simple
Storage Servic<span class="Apple-style-span" style="font-size: x-small;">e</span></b></span></span></div>
</td>
<td width="50%"><div align="CENTER" style="margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">AZURE</span></b></div>
<div align="CENTER">
<span style="color: blue;"><span style="font-family: inherit;"><b>BLOB Storage</b></span></span></div>
</td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">User Subscription</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">Single Account</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">Multiple Accounts</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Security Keys</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">Two set of acceskey and secret key</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">Account name with Primary Access Key / Secondary Access Key</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Authentication</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">With Acceskey and Secretkey</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">With Account name and Primary Access Key or Secondary Access
Key</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Domain Name</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">Bucket Name and its unique</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">Account Name and its unique</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Contents are categorized by</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">Bucket</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">Container</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Size Limitations on Storage</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">No size limit on storage</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">100TB storage size per account</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Size Limitations on File-Size</span></b></td>
</tr>
<tr valign="TOP">
<td height="43" width="46%"><div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Up to 5GB in a single PUT</span></div>
<span class="Apple-style-span" style="font-family: inherit;">Up to 5 TB using multipart upload</span></td>
<td width="54%"><div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Up to 64MB for single Blob.
</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Up to 200GB for Block Blobs</span></div>
<span class="Apple-style-span" style="font-family: inherit;">Up to 1TB for Page Blobs</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Specifying API Version in Request Header</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">N/A</span></td>
<td width="54%"><div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">x-ms-version</span></div>
<span style="color: blue; font-family: inherit;"><u><a href="http://msdn.microsoft.com/en-us/library/windowsazure/dd894041.aspx">http://msdn.microsoft.com/en-us/library/windowsazure/dd894041.aspx</a></u></span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Offline Testing</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">N/A</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">Local Storage is provided by Windows Azure to test cloud
storage with help of Storage Emulator.</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Versioning</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><span class="Apple-style-span" style="font-family: inherit;">Enable/Disable/Suspend versioning at Bucket Level</span></td>
<td width="54%"><span class="Apple-style-span" style="font-family: inherit;">Provided <b>Snapshot</b> functionality for object(s).</span></td>
</tr>
<tr>
<td colspan="2" valign="TOP" width="100%"><b><span class="Apple-style-span" style="font-family: inherit;">Logging</span></b></td>
</tr>
<tr valign="TOP">
<td width="46%"><div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Bucket Level Logging</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">No size limitations.</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<span class="Apple-style-span" style="font-family: inherit;">Logs stored in configured Bucket and Prefi</span><span class="Apple-style-span" style="font-family: inherit; font-size: x-small;">x</span></td>
<td width="54%"><div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Service(Blob, Table, Queue) Level
Logging for storage account's</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">20TB size limitations other than
100TB storage size.</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Log data is stored as block blobs in
a container called $logs in the blob namespace of your account</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Logs can be accessed thru $logs
container using http://<accountname>.blob.core.windows.net/$logs</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Log name under the $logs container
will have the following format:</span><br />
<span class="Apple-style-span" style="font-family: inherit;"> <service
name>/YYYY/MM/DD/hhmm/<Counter>.log</span></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit; font-size: x-small;"><br /></span></div>
<div style="margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">Reference:</span></b></div>
<div style="margin-bottom: 0in;">
<div style="text-align: justify;">
<span style="color: blue; font-family: inherit;"><u><a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2011/08/03/windows-azure-storage-logging-using-logs-to-track-storage-requests.aspx">http://blogs.msdn.com/b/windowsazurestorage/archive/</a></u></span></div>
<div style="text-align: justify;">
<span style="color: blue; font-family: inherit;"><u><a href="http://blogs.msdn.com/b/windowsazurestorage/archive/2011/08/03/windows-azure-storage-logging-using-logs-to-track-storage-requests.aspx">2011/08/03/windows-azure-storage-logging-using-logs-to-track-storage-requests.aspx</a></u></span></div>
</div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span style="color: blue; font-family: inherit;"><u><a href="http://msdn.microsoft.com/en-us/library/hh343270.aspx">http://msdn.microsoft.com/en-us/library/hh343270.aspx</a></u></span></div>
<span class="Apple-style-span" style="font-family: inherit; font-size: x-small;"><br /></span><br />
<span class="Apple-style-span" style="font-family: inherit; font-size: x-small;"><br /></span></td>
</tr>
</tbody></table>
<span class="Apple-style-span" style="font-family: inherit; font-size: x-small;"><br /></span><br />
<br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="margin-bottom: 0in;">
</div>
<div style="margin-bottom: 0in;">
<span style="font-size: medium;"><b>LIST API Comparison</b></span></div>
<div style="margin-bottom: 0in;">
<br /></div>
<table border="1" bordercolor="#000000" cellpadding="6" cellspacing="0">
<colgroup><col width="48*"></col>
<col width="42*"></col>
<col width="63*"></col>
<col width="42*"></col>
<col width="61*"></col>
</colgroup><tbody>
<tr valign="BOTTOM">
<td height="2" width="19%"><div style="margin-left: -0.19in;">
<br /></div>
</td>
<td colspan="2" width="41%"><div align="CENTER">
<span style="font-family: Arial, sans-serif;"><b>Amazon</b></span></div>
</td>
<td colspan="2" width="40%"><div align="CENTER">
<span style="font-family: Arial, sans-serif;"><b>Azure</b></span></div>
</td>
</tr>
<tr valign="BOTTOM">
<td height="3" width="19%"><br /></td>
<td colspan="2" width="41%"><div align="CENTER">
<span style="color: blue;"><span style="font-family: Arial, sans-serif;"><b>LIST
Bucket</b></span></span></div>
</td>
<td colspan="2" width="40%"><div align="CENTER">
<span style="color: blue;"><span style="font-family: Arial, sans-serif;"><b>LIST
Container</b></span></span></div>
</td>
</tr>
<tr>
<td height="18" width="19%"><br /></td>
<td width="16%"><div align="CENTER">
<span style="font-family: Arial, sans-serif;"><b>Name</b></span></div>
</td>
<td width="25%"><div align="CENTER">
<span style="font-family: Arial, sans-serif;"><b>Description</b></span></div>
</td>
<td width="17%"><div align="CENTER">
<span style="font-family: Arial, sans-serif;"><b>Name</b></span></div>
</td>
<td width="24%"><div align="CENTER">
<span style="font-family: Arial, sans-serif;"><b>Description</b></span></div>
</td>
</tr>
<tr valign="TOP">
<td height="70" width="19%"><span style="font-family: Arial, sans-serif;"><b>Prefix</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Prefix</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;">Keys that begin
with the indicated prefix.</span></td>
<td width="17%"><span style="font-family: Arial, sans-serif;"><i>prefix</i></span></td>
<td width="24%"><span style="font-family: Arial, sans-serif;">Filters the results
to return only blobs whose names begin with the specified prefix.</span></td>
</tr>
<tr valign="TOP">
<td height="46" width="19%"><div align="JUSTIFY">
<span style="font-family: Arial, sans-serif;"><b>Marker</b></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Marker</span></div>
</td>
<td width="25%"><div align="JUSTIFY">
<span style="font-family: Arial, sans-serif;">Indicates
where in the bucket to begin listing.</span></div>
</td>
<td width="17%"><div align="JUSTIFY">
<span style="font-family: Arial, sans-serif;">Marker</span></div>
</td>
<td width="24%"><div align="JUSTIFY">
<span style="font-family: Arial, sans-serif;">Indicates
where in the bucket to begin listing.</span></div>
</td>
</tr>
<tr valign="TOP">
<td height="18" width="19%"><span style="font-family: Arial, sans-serif;"><b>No.of Records</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">MaxKeys</span></td>
<td width="25%"><div align="RIGHT">
<span style="font-family: Arial, sans-serif;">1000</span></div>
</td>
<td width="17%"><span style="font-family: Arial, sans-serif;"><i>maxresults</i></span></td>
<td width="24%"><div align="RIGHT">
<span style="font-family: Arial, sans-serif;">5000</span></div>
</td>
</tr>
<tr valign="TOP">
<td height="59" width="19%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><b>Next-</b></span><br />
<span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><b>Marker</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">NextMarker</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;"><b>NextMarker</b></span><span style="font-family: Arial, sans-serif;">
element has a value only if the list results are not complete.</span></td>
<td width="17%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">NextMarker</span></td>
<td width="24%"><span style="font-family: Arial, sans-serif;"><b>NextMarker</b></span><span style="font-family: Arial, sans-serif;">
element has a value only if the list results are not complete.</span></td>
</tr>
<tr valign="TOP">
<td height="16" width="19%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><b>To dentify list complete or not</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">IsTruncated</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;">Specifies whether
(</span><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">true</span><span style="font-family: Arial, sans-serif;">)
or not (</span><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">false</span><span style="font-family: Arial, sans-serif;">)
all of the results were returned. All of the results may not be
returned if the number of results exceeds that specified by
</span><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><i>MaxKeys</i></span><span style="font-family: Arial, sans-serif;">.</span></td>
<td width="17%"><span style="font-family: Arial, sans-serif;"><b>N/A</b></span></td>
<td width="24%"><span style="font-family: Arial, sans-serif;"><b>N/A</b></span></td>
</tr>
<tr valign="TOP">
<td height="228" width="19%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><b>Delimiter</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Delimiter</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;">Causes keys that
contain the same string between the prefix and the first
occurrence of the delimiter to be rolled up into a single result
element in the </span><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><i>Common-</i></span><br />
<span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><i>Prefixes</i></span><span style="font-family: Arial, sans-serif;">
collectio</span><span style="font-family: Arial, sans-serif; font-size: x-small;">n.</span></td>
<td width="17%"><span style="font-family: Arial, sans-serif;"><i>delimiter</i></span></td>
<td width="24%"><span style="font-family: Arial, sans-serif;">When the request
includes this parameter, the operation returns a </span><span style="font-family: Arial, sans-serif;"><b>BlobPrefix</b></span><span style="font-family: Arial, sans-serif;">
element in the response body that acts as a placeholder for all
blobs whose names begin with the same substring up to the
appearance of the delimiter character. The delimiter may be a
single character or a string.</span></td>
</tr>
<tr valign="TOP">
<td height="30" width="19%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><b>Folders</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Common-Prefixes</span></td>
<td width="25%"><br /></td>
<td width="17%"><span style="font-family: Arial, sans-serif;"><i>BlobPrefix</i></span></td>
<td width="24%"><br /></td>
</tr>
<tr valign="TOP">
<td height="15" width="19%"><span style="font-family: Arial, sans-serif;"><b>FileName</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Key</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;">The object's key.</span></td>
<td width="17%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Name</span></td>
<td width="24%"><span style="font-family: Arial, sans-serif;">name of the object</span></td>
</tr>
<tr valign="TOP">
<td height="29" width="19%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><b>Size</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Size</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;">Size in bytes of
the object.</span></td>
<td width="17%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Content-Length
/ Size</span></td>
<td width="24%"><span style="font-family: Arial, sans-serif;">Size in bytes of
the object.</span></td>
</tr>
<tr valign="TOP">
<td height="30" width="19%"><span style="font-family: Arial, sans-serif;"><b>Metadata</b></span></td>
<td width="16%"><span style="font-family: Arial, sans-serif;"><b>N/A</b></span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;"><b>N/A</b></span></td>
<td width="17%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">include</span></td>
<td width="24%"><span style="font-family: Arial, sans-serif;"><i>snapshots,metadata,</i></span><br />
<span style="font-family: Arial, sans-serif;"><i>uncommittedblobs</i></span></td>
</tr>
<tr valign="TOP">
<td height="83" width="19%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;"><b>ETag</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">ETag</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;">MD5 hash of the
object. The ETag only reflects changes to the contents of an
object, not its metadata.</span></td>
<td width="17%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Etag</span></td>
<td width="24%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">identifier</span></td>
</tr>
<tr valign="TOP">
<td height="20" width="19%"><span style="font-family: Arial, sans-serif;"><b>Content Type</b></span></td>
<td width="16%"><span style="font-family: Arial, sans-serif;"><b>N/A</b></span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;"><b>N/A</b></span></td>
<td width="17%"><span style="font-family: Arial, sans-serif;">Content-Type</span></td>
<td width="24%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">blob-content-type</span></td>
</tr>
<tr valign="TOP">
<td height="17" width="19%"><span style="font-family: Arial, sans-serif;"><b>Modified Date</b></span></td>
<td width="16%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">LastModified</span></td>
<td width="25%"><span style="font-family: Arial, sans-serif;">Date and time the
object was last modified.</span></td>
<td width="17%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">Last-Modified
/LastModified</span></td>
<td width="24%"><span style="font-family: 'Arial Unicode MS', Arial, sans-serif;">date-time-value</span></td>
</tr>
</tbody></table>
<div style="margin-bottom: 0in;">
<br /></div>
<div style="margin-bottom: 0in;">
Hope this post helped you to understand Azure BLOB Storage.</div>
<br />
<br />
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com6tag:blogger.com,1999:blog-1298619317057174466.post-83582830557057036742011-11-23T06:48:00.001-08:002011-11-25T02:49:31.020-08:00Adding custom Ribbon menu in MS Office using C#<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="line-height: 150%; margin-bottom: 0in; text-align: right;">
<span class="Apple-style-span" style="font-family: inherit;">- Mohankumar Devasigamani</span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">Hope readers might
have gone through my previous post which helps you to better understand on how to create MS Office add-ins.</span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span class="Apple-style-span" style="font-family: inherit;"> </span></b><b>Note</b>: As per
my previous blog post, I sticked on MS Visual Studio 2010 & MS
Office 2010.</div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span class="Apple-style-span" style="font-family: inherit;"><br /></span></b></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span class="Apple-style-span" style="font-family: inherit;">Creating the
add-in project</span></b><br />
<a href="http://cssinnovations.blogspot.com/2011/11/create-your-own-ms-office-add-ins-using.html">Click here</a> to refer my pervious blog post.</div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span class="Apple-style-span" style="font-family: inherit;"><br /></span></b><br />
<b><span class="Apple-style-span" style="font-family: inherit;">Adding Reference
to the project</span></b></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: justify;">
<ul>
<li><span class="Apple-style-span" style="font-family: inherit;">Open MS Office
add-in project (CSSSampleAddin)</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Right-click on
Reference folder in add-in project ->Go
to Add Reference</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Add Reference
window will appear.</span></li>
</ul>
Click COM tab.
Select <strong>Microsoft Office 14.0 Object Library</strong>,
<b>Microsoft Office Core</b> and then click <strong>OK</strong></div>
<div style="margin-bottom: 0in; text-align: justify;">
<div style="line-height: 150%;">
<b><span class="Apple-style-span" style="font-family: inherit;"><br /></span></b></div>
<div style="line-height: 150%;">
<b><span class="Apple-style-span" style="font-family: inherit;">Creating the
Ribbon menu Customization XML File</span></b></div>
<br />
<ul style="line-height: 150%;">
<li><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="line-height: normal;">Right-click on
project -></span><span class="Apple-style-span" style="line-height: normal; text-align: left;"> Add -></span><span class="Apple-style-span" style="line-height: normal; text-align: left;"> New Item</span></span></li>
<li><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="line-height: normal;">Select XML file and
name it as RibbonMenu.xml -></span><span class="Apple-style-span" style="line-height: normal; text-align: left;">Click Add</span></span></li>
<li><span class="Apple-style-span" style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;">Edit and add the
below XML content to the XML file.</span></span></li>
</ul>
</div>
<div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"><?</span><span style="color: #a31515;">xml</span><span style="color: blue;">
</span><span style="color: red;">version</span><span style="color: blue;">=</span>"<span style="color: blue;">1.0</span>"<span style="color: blue;">
</span><span style="color: red;">encoding</span><span style="color: blue;">=</span>"<span style="color: blue;">utf-8</span>"<span style="color: blue;">
?></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"><</span><span style="color: #a31515;">customUI</span><span style="color: blue;">
</span><span style="color: red;">xmlns</span><span style="color: blue;">=</span><span style="color: blue;"><u><a href="http://schemas.microsoft.com/office/2006/01/customui">http://schemas.microsoft.com/office/2006/01/customui</a></u></span><span style="color: blue;"> </span><span style="color: red;">loadImage</span><span style="color: blue;">=</span>"<span style="color: blue;">GetImage</span>"<span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"><</span><span style="color: #a31515;">ribbon</span><span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">tabs</span><span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">tab</span><span style="color: blue;">
</span><span style="color: red;">id</span><span style="color: blue;">=</span>"<span style="color: blue;">tab1</span>"<span style="color: blue;">
</span><span style="color: red;">label</span><span style="color: blue;">=</span>"<span style="color: blue;">CSS
Corp Demo</span>"<span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">group</span><span style="color: blue;">
</span><span style="color: red;">id</span><span style="color: blue;">=</span>"<span style="color: blue;">group1</span>"<span style="color: blue;">
</span><span style="color: red;">label</span><span style="color: blue;">=</span>"<span style="color: blue;">CSS
Group</span>"<span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> <</span><span style="color: #a31515;">menu</span><span style="color: blue;">
</span><span style="color: red;">id</span><span style="color: blue;">=</span>"<span style="color: blue;">menu1</span>"<span style="color: blue;">
</span><span style="color: red;">label</span><span style="color: blue;">=</span>"<span style="color: blue;">Drop
Down</span>"<span style="color: blue;">
</span><span style="color: red;">itemSize</span><span style="color: blue;">=</span>"<span style="color: blue;">large</span>"<span style="color: blue;"> </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: red; font-family: 'Courier New', Courier, monospace;">getScreentip</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">=</span>"<span style="color: blue;">GetScreenTip</span>"<span style="color: blue;">
</span><span style="color: red;">supertip</span><span style="color: blue;">=</span>"<span style="color: blue;">This
is a super tip </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;">for
the menu.</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">"<span style="color: blue;">
</span><span style="color: red;">image</span><span style="color: blue;">=</span>"<span style="color: blue;">star</span>"<span style="color: blue;">></span></span></div>
<span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;"> <</span><span style="color: #a31515; font-family: 'Courier New', Courier, monospace; line-height: 24px;">button</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;">
</span><span style="color: red; font-family: 'Courier New', Courier, monospace; line-height: 24px;">id</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;">=</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 24px;">"</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;">uxSearchButton</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 24px;">"</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;">
</span><span style="color: red; font-family: 'Courier New', Courier, monospace; line-height: 24px;">image</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;">=</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 24px;">"</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;">search</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace; line-height: 24px;">"</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;"> </span><br />
<div style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: red;"> getDescription</span><span style="color: blue;">=</span>"<span style="color: blue;">GetDescription</span>"</span></div>
<span class="Apple-style-span" style="line-height: 24px;"> </span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;"> </</span><span style="color: #a31515; font-family: 'Courier New', Courier, monospace; line-height: 24px;">menu</span><span style="color: blue; font-family: 'Courier New', Courier, monospace; line-height: 24px;">></span><br />
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> </</span><span style="color: #a31515;">group</span><span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> </</span><span style="color: #a31515;">tab</span><span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
</</span><span style="color: #a31515;">tabs</span><span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">
</</span><span style="color: #a31515;">ribbon</span><span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"></</span><span style="color: #a31515;">customUI</span><span style="color: blue;">></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
</div>
<ul style="text-align: left;">
<li><span class="Apple-style-span" style="font-family: inherit;">Save the file.</span></li>
</ul>
<div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><b><span class="Apple-style-span" style="font-family: inherit;">Set the
RibbonMenu.xml as embedded resource </span></b>
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br />
<ul style="text-align: left;">
<li><span class="Apple-style-span" style="font-family: inherit;">Right-click on the
RibbonMenu.xml file -> Properties</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Change Build Action
property to Embedded Resource</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Go to CSSSampleAddin
project properties -> Select Resource
tab</span></li>
<li><span class="Apple-style-span" style="font-family: inherit;">Select file option,
and drag and drop the xml file -> Save
the properties</span></li>
</ul>
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">Start writing the
code</span></b></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Open Connect.cs and
add below lines in top of the class file</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;"><br /></span><br />
<span style="color: blue; font-family: 'Courier New', Courier, monospace;">using</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">
Microsoft.Office.Core;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">using</span>
Word = Microsoft.Office.Interop.Word;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Create instance of
Word and implement the </span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;">IRibbonExtensibility
</span>interface</span><span class="Apple-style-span" style="font-family: inherit;">.
</span><span class="Apple-style-span" style="font-family: inherit;">Edit / <span class="Apple-style-span" style="font-family: inherit;">Modify the existing code as below</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue; font-family: 'Courier New', Courier, monospace;">private</span><span style="font-family: 'Courier New', Courier, monospace;">
Word.</span><span style="color: #2b91af; font-family: 'Courier New', Courier, monospace;">Application</span><span style="font-family: 'Courier New', Courier, monospace;">
applicationObject;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<b><br /></b></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">Edit /Modify the
first line of OnConnection() method as below</span></b></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br /></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">applicationObject
= (Word.<span style="color: #2b91af;">Application</span>)application;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Inherited the</span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">
<span style="color: #2b91af;">IRibbonExtensibility</span></span><span class="Apple-style-span" style="font-family: inherit;">
in Connect class</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"><br /></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">public</span>
<span style="color: blue;">class</span>
<span style="color: #2b91af;">Connect</span>
: <span style="color: #2b91af;">Object</span>,
Extensibility.<span style="color: #2b91af;">IDTExtensibility2</span>,
<span style="color: #2b91af;">IRibbonExtensibility</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Right-click on
implemented interface and click Implement Interface, and then click
Implement Interface Explicitly that will add
</span><span style="color: #2b91af; font-family: 'Courier New', Courier, monospace;">IRibbonExtensibility</span><span class="Apple-style-span" style="font-family: inherit;">.GetCustomUI
method</span><span class="Apple-style-span" style="font-family: inherit; font-size: 9pt;">. </span><span class="Apple-style-span" style="font-family: inherit;">Add the below line GetCustimUI method.</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-family: Consolas, monospace;"><span style="font-size: x-small;"><br /></span></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">return</span>
Properties.<span style="color: #2b91af;">Resources</span>.Ribbon;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Now almost your demo
add-in is ready for test. Before testing add the image for custom
ribbon menu.</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<b><br /></b></div>
<div style="margin-bottom: 0in;">
<div style="line-height: 150%;">
<b>Adding your own
image file</b></div>
<br />
<ul style="line-height: 150%; text-align: left;">
<li><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="line-height: normal;">Right-click on
project -></span><span class="Apple-style-span" style="line-height: normal;"> Add -></span><span class="Apple-style-span" style="line-height: normal;"> New Item</span></span></li>
<li><span class="Apple-style-span" style="font-family: inherit;"><span class="Apple-style-span" style="line-height: normal;">Select Bitmap file -></span><span class="Apple-style-span" style="line-height: normal;">Browse your image -></span><span class="Apple-style-span" style="line-height: normal;"> Click Add</span></span></li>
<li><span class="Apple-style-span" style="line-height: normal;"><span class="Apple-style-span" style="font-family: inherit;">To embed the image,
please follow the same steps that we did for XML file.</span></span></li>
</ul>
</div>
<ol><div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">For example here i
have added two images named search and star. You can see those two
images below .</span></div>
</ol>
<div style="line-height: 150%; margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">Add the below
method in connect class</span></b></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">public</span>
<span style="color: #2b91af;">IPictureDisp</span>
GetImage(<span style="color: blue;">string</span>
imageName)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;"> IPictureDisp</span>
dispImage = <span style="color: blue;">null</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> switch</span>
(imageName)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> case</span>
<span style="color: #a31515;">"search"</span>:</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> dispImage
= </span><span style="color: #2b91af;"><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">PictureConverter</span></span><span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;">.ImageToPictureDisp</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> (Properties.<span style="color: #2b91af;">Resources</span>.search);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> break</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> case</span>
<span style="color: #a31515;">"star"</span>:</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> dispImage
= <span style="color: #2b91af;">PictureConverter</span>.ImageToPictureDisp</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"> (Properties.<span style="color: #2b91af;">Resources</span>.star);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> break</span>;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">return</span>
dispImage;</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">Include the below
class in the same file.</span></b></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">internal</span>
<span style="color: blue;">class</span>
<span style="color: #2b91af;">PictureConverter</span>
: <span style="color: #2b91af;">AxHost</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> private</span>
PictureConverter() : <span style="color: blue;">base</span>(<span style="color: #2b91af;">String</span>.Empty)
{ }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> static</span>
<span style="color: blue;">public</span>
<span style="color: #2b91af;">IPictureDisp</span>
ImageToPictureDisp(<span style="color: #2b91af;">Image</span>
image)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> return</span>
(<span style="color: #2b91af;">IPictureDisp</span>)GetIPictureDispFromPicture(image);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> static</span>
<span style="color: blue;">public</span>
<span style="color: #2b91af;">IPictureDisp</span>
IconToPictureDisp(<span style="color: #2b91af;">Icon</span>
icon)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> return</span>
ImageToPictureDisp(icon.ToBitmap());</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><br />
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> static</span>
<span style="color: blue;">public</span>
<span style="color: #2b91af;">Image</span>
PictureDispToImage(<span style="color: #2b91af;">IPictureDisp</span>
picture)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> {</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"> return</span>
GetPictureFromIPicture(picture);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;"> }</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><b>GetImage</b>
method will be already referred from RibbonMenu.xml file.
</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<div style="text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"> Right time to test
demo project. Build the CSSSampleAddin project. Go to project
properties Select Debug and set
Start external program to Word, </span></div>
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<div style="text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">by default word exe located in C:\Program
Files\Microsoft Office\Office14\WINWORD.EXE</span></div>
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<div style="text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">Run the add-in
project, you will be able to see the customized Ribbon menu.</span></div>
</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDmEUG3wCfcD14ITuW7sKguOHruCisiv8FN1TeVWS_WiVU610uH-b9pSZI7WZgk8H6YcEDO8kDoIp9_r-NRBYCJeLTbPAWbAHhSr7PUZj3fd0A8oJURXc5nq5rn2MffodhdMOecOgFHk3l/s1600/Screen+shot+2011-11-23+at+11.32.26+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiDmEUG3wCfcD14ITuW7sKguOHruCisiv8FN1TeVWS_WiVU610uH-b9pSZI7WZgk8H6YcEDO8kDoIp9_r-NRBYCJeLTbPAWbAHhSr7PUZj3fd0A8oJURXc5nq5rn2MffodhdMOecOgFHk3l/s1600/Screen+shot+2011-11-23+at+11.32.26+AM.png" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<b><span class="Apple-style-span" style="font-family: inherit;">Write the method
to handle click event of Search button.</span></b></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;"><br /></span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: blue;">public</span>
<span style="color: blue;">void</span>
Search(Microsoft.Office.Core.<span style="color: #2b91af;">IRibbonControl</span>
control)</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">{</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: 'Courier New', Courier, monospace;"><span style="color: #2b91af;">MessageBox</span>.Show(<span style="color: #a31515;">"User
has clicked Search button."</span>,
<span style="color: #a31515;">"CSS
Corp Demo"</span>);</span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-family: 'Courier New', Courier, monospace;">}</span></div>
<div style="margin-bottom: 0in;">
<div style="line-height: 150%;">
<span class="Apple-style-span" style="font-family: inherit;">I hope this post helped you to know how ribbon menu can be added to <span class="Apple-style-span" style="background-color: white; line-height: 20px;">Microsoft Word</span>. Similarly the same process can be used to add ribbon menu to any of the </span><span class="Apple-style-span" style="background-color: white; line-height: 20px;">Microsoft Word</span><span class="Apple-style-span" style="font-family: inherit;"> Office tools (Excel,Access etc.) </span>As I mentioned
in my previous blog. In Further you can setup project to create msi
/exe which will help you to create add-in in other machine.</div>
<span class="Apple-style-span" style="line-height: 150%;"><br /></span><br />
<span class="Apple-style-span" style="line-height: 150%;"><b>Note:</b> A</span><span class="Apple-style-span" style="line-height: 24px;">wait and stay tuned for my next post "</span>List to be checked out while MS Office add-ins are not getting loaded"<span class="Apple-style-span" style="line-height: 24px;">.</span><br />
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
</div>
<br /></div>
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com26tag:blogger.com,1999:blog-1298619317057174466.post-65166182149558488712011-11-15T21:12:00.001-08:002011-11-15T23:24:06.314-08:00Create your own MS Office add-ins using .Net<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<div style="margin-bottom: 0in; text-align: right;">
<span style="font-family: inherit;">-Mohankumar Deivasigamani</span></div>
<div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;"><b>Introduction</b></span></div>
<div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;"> Here
I am sharing the steps that will guide you to create a simple MS
Office add-in using Microsoft Visual Studio. For further explanation
lets take Visual Studio 2010 and MS Office 2010.</span></div>
<div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;"><b>Prerequisites</b></span></div>
<div style="margin-bottom: 0in; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;">You
must have the following items to be installed</span></div>
<ol>
<li><div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;">MS
Visual Studio 2010 (You can also use 2005 / 2008)</span></div>
</li>
<li><div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;">Microsoft
.Net Framework 3 (minimum 2.0 up to 4.5)</span></div>
</li>
<li><div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;">Office
PIA (Primary Interop Assemblies)</span></div>
</li>
</ol>
<div style="margin-bottom: 0in; text-align: justify;">
<span style="font-family: inherit;"><b>Start
creating add-ins</b></span></div>
<ul style="text-align: left;">
<li><span class="Apple-style-span" style="font-family: inherit;">Open
MS Visual Studio 2010 > Select New Project > Other Project
Types > Extensibility</span></li>
</ul>
<div class="separator" style="clear: both; text-align: center;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<span style="font-family: inherit;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTerJBDJqDx6RTDRSCYHs8ZOajSU4_b2JNofjROu3bxJ-yp9GPa7xzXS_hsQtsfaJrQLGREH7V7guDjTdXseiJuR1hqcG0iFut66J6_doCoZNrYm9WmpqyzTiOvuVeH9QuVw3PDCPwpRR8/s1600/Screen+shot+2011-11-16+at+10.50.17+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiTerJBDJqDx6RTDRSCYHs8ZOajSU4_b2JNofjROu3bxJ-yp9GPa7xzXS_hsQtsfaJrQLGREH7V7guDjTdXseiJuR1hqcG0iFut66J6_doCoZNrYm9WmpqyzTiOvuVeH9QuVw3PDCPwpRR8/s1600/Screen+shot+2011-11-16+at+10.50.17+AM.png" /></a></span></div>
<div class="separator" style="clear: both; text-align: justify;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: justify;">
</div>
<ul>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Now
choose Shared Add-in project Template as shown above.</span></div>
</li>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Enter
the project name and solution name in the appropriate fields and
click ok.</span></div>
</li>
</ul>
<br />
<div style="margin-bottom: 0in; text-align: justify;">
</div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Configuration
Wizard</b></span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Wizard
screen will guide you following steps</span></div>
<ol>
<li><div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Press
<u>N</u>ext
in the welcome add-in wizard</span></div>
</li>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Select
the programming Language which you want to develop. (C#)</span></div>
</li>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Select
the application host (Word / Visio / Publisher / Project / Power
Point /Outlook / Info Page /Excel /Access)</span></div>
</li>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Enter
name and description of your add-in</span></div>
</li>
<li><div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;">Choose
Add-in option
</span></div>
</li>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Click
the finish button to create new MS Office add-in and setup project
for selected host application.</span></div>
</li>
</ol>
<div style="margin-bottom: 0in;">
<b>Projects created</b></div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Two
projects will be created automatically as follows</span></div>
<ol>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Add-in
project (CSSSampleAddin)</span></div>
</li>
<li><div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Setup
project (CSSSampleAddinSeup)</span></div>
</li>
</ol>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif6Kib_TyOMhBhD7-zOyqWxqULZDO7OU345Y4fhsIfc0gtPSUQGag0dXImOZlWaH6Rm9b7gHwrMK8HxCaOpgMl2S6A0bi4k29pSgfCDss4c1GCFh09Hrpkt-dG76-K6IkL23n2pK2Naa2m/s1600/Screen+shot+2011-11-16+at+11.19.27+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif6Kib_TyOMhBhD7-zOyqWxqULZDO7OU345Y4fhsIfc0gtPSUQGag0dXImOZlWaH6Rm9b7gHwrMK8HxCaOpgMl2S6A0bi4k29pSgfCDss4c1GCFh09Hrpkt-dG76-K6IkL23n2pK2Naa2m/s1600/Screen+shot+2011-11-16+at+11.19.27+AM.png" /></span></a></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Add-in
gets installed, which is highlighted in the screen displayed below.</span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;"><br /></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6hEXeWJdjyK0i11ZieJf7le3hEue-vR-jZ0jXaJiDIFgsehK0Ljwl7bh6MJcyR1w2Y0yI4Sf76F2eQM1Hmv3_FVTL80JbIrz-4ez0QZD5-Xaor5J8dEoAsabC2zQDN4gxCbjgtZqZBCNk/s1600/Screen+shot+2011-11-16+at+11.21.06+AM.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><span class="Apple-style-span" style="font-family: inherit;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6hEXeWJdjyK0i11ZieJf7le3hEue-vR-jZ0jXaJiDIFgsehK0Ljwl7bh6MJcyR1w2Y0yI4Sf76F2eQM1Hmv3_FVTL80JbIrz-4ez0QZD5-Xaor5J8dEoAsabC2zQDN4gxCbjgtZqZBCNk/s1600/Screen+shot+2011-11-16+at+11.21.06+AM.png" /></span></a></div>
<div style="margin-bottom: 0in;">
<span class="Apple-style-span" style="font-family: inherit;"><br /></span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;">Now
you can start writing your code to build add-in menu in OnConnection() method of Connect.cs class file. F</span>urther
you can setup project to create msi /exe which will help you to
create add-in other machine.</div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;"><b><br /></b></span></div>
<div style="margin-bottom: 0in;">
<span style="font-family: inherit;"><b>Note</b>:
Await for my next post which will help you to create Ribbon menu in
MS Office Word</span></div>
<br />
<br />
<br /></div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com5tag:blogger.com,1999:blog-1298619317057174466.post-27677490053563265532011-11-09T22:38:00.000-08:002011-11-09T22:38:51.704-08:00Android & its UI<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: right;">
<span style="font-size: small;"> -Kalimuthu Rengaswamy</span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Now
a days Smart Phones playing a vital role in IT industry with their
innovative applications and OS updates. I am on my toes for getting
Android latest version Ice-cream-sandwich which totally updated with
many stunning features.</span></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"> Probably
many of you might be using Android or any other smart phone, which
are provided with their own App stores. When you thought of an
Application, the first thing you will be expecting is good UI. Right!
Android has provided developers with many widgets and necessary
layouts. Android done all its part and now UI entirely depends on the
developers ability.</span></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"> People
use the Smart mobiles for various purposes, for example security,
entertainment, gaming, casual and so on. All persons may not
concentrate on UI but many people do. Android is provided with both
2D and 3D graphic engines.</span></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"> Lets
go little depth in this topic, every activity in the application is
designed using the XML coding. As I specified previously, android is
providing all the necessary widgets,layouts, composites, media&images
in its framework, making developers easy.</span></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"> If
we go little more deeper Android is provided with these following
layouts:</span></div>
<span style="font-family: inherit; font-size: small;">
</span><ul style="font-family: inherit;">
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: black;"><span style="font-style: normal;"><span style="font-weight: normal;">Frame
Layout</span></span></span></span></div>
</li>
<li><div align="JUSTIFY" style="font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;">Absolute
Layout</span></div>
</li>
<li><div align="JUSTIFY" style="font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;">Linear
Layout</span></div>
</li>
<li><div align="JUSTIFY" style="font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;">Table
Layout</span></div>
</li>
<li><div align="JUSTIFY" style="font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;">Relative
Layout</span></div>
</li>
</ul>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;"> Developers
uses this according to their convenience and purpose. For the time
being I will be explaining only about Relative layout which is most
used in general.</span></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;">Relative
layout :</span></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;"> In
a relative layout every element arranges itself relative to a parent
control or other control.</span></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;"> In
this relative layout control place in two way </span>
</div>
<span style="font-family: inherit; font-size: small;">
</span><ol style="font-family: inherit;">
<li><div align="JUSTIFY" style="font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black; font-size: small;">relative
to their container</span></div>
</li>
<li>
<div align="JUSTIFY" style="font-style: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">
</span><span style="color: black; font-size: small;">relative
to other controls<b> </b></span></div>
</li>
</ol>
<div style="font-family: inherit;">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style><span style="color: black; font-size: small;"><b>Relative
to their container</b></span><span style="color: black; font-size: small;"> </span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%;">
<span style="color: black; font-size: small;">In
this type controls are relative to container place in layout. It
flow some properties</span><span style="font-size: small;"><strong><span style="color: black;"><span style="font-style: normal;"><span style="font-weight: normal;"> android:layout_alignParentTop, Bottom, Right or Left</span></span></span></strong></span><span style="color: black; font-size: small;"><span style="font-style: normal;"><span style="font-weight: normal;">
to </span></span></span><span style="font-size: small;"><strong><span style="color: black;"><span style="font-style: normal;"><span style="font-weight: normal;">true</span></span></span></strong></span><span style="color: black; font-size: small;"><span style="font-style: normal;"><span style="font-weight: normal;">.
This aligns the Top,Bottom,Right or Left side of the control to
the Top, Bottom, Right or Left side of the container respectively. </span></span></span>
</div>
<span style="font-family: inherit; font-size: small;">
</span><ul style="font-family: inherit;">
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><strong>android:layout_centerVertical</strong></span><span style="font-size: small;">: The control should be positioned vertically in the center of the
container. </span>
</div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><strong>android:layout_centerHorizontal</strong></span><span style="font-size: small;">: The control should be positioned horizontally in the center of the
container. </span>
</div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<span style="font-size: small;"><strong>android:layout_centerInParent</strong></span><span style="font-size: small;">: The control should be positioned both vertically and horizontally in
the middle of the container. </span>
</div>
</li>
</ul>
<span style="font-size: small;">
</span><span style="font-size: small;"> </span><style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<br />
<div align="JUSTIFY" style="line-height: 150%;">
<span style="font-family: Times New Roman,serif; font-size: small;"><b style="font-family: inherit;">Example
: </b></span></div>
<span style="font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;"><?xml
version="1.0" encoding="utf-8"?></span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;"><RelativeLayout</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:id="@+id/widget30"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:layout_width="fill_parent"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:layout_height="fill_parent"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">xmlns:android="http://schemas.android.com/apk/res/android"></span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
</div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;"><Button</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:id="@+id/widget31"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:layout_width="wrap_content"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:layout_height="wrap_content"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:text="Button"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:layout_alignParentTop="true"</span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;">android:layout_centerHorizontal="true"></span></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style><span style="font-size: small;">
</span></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;"></Button></span></div>
<span style="font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 150%;">
<span style="font-size: small;"></RelativeLayout></span></div>
<span style="font-size: small;">
</span><div style="line-height: 150%; text-align: center;">
<span style="font-size: small;"> <img alt="" height="400" src="data:image/png;base64,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hfARBmvo06aOIRVGu5YqK23qtKE9rF3xVfZsH00PeMLr7N434TVXfPlKsZwTft80F+yJT3qi581TnvyU5Su+8iuWP/vTP/MK4n13vm958++/efmbf/1vLufPnV/uvf/e5bZfvm15xV96xfKnH/nT5fX/1+uX82fPLx/60IeWl77spcuvv+HXl3e9613Lj/yDH1le8PwXLN/2bd+2fP7+zy+/+//87vKW29+yPPuZz16+5Zu/Zbn55pttx2/937/lS20kmN978+8tT33qU5e/8df/xnLj9Td6ZeOHALS28bfoWd1wMYHVzyzTA9fogRrvaht2+hWWpJCVBzjaoeVYCg5YjfHgQrdP5lUXwEzmBYmV8x6XddP8lk73MSYZLisOlGSrMGgDTx1YU7c/wQADP5YKG9v0s6Ej7Uo3ypv9o+kBEgcrAeYnKwbe/5WNG/EkGeAPXnxw+egnPrrc/Sd3L1/2X3yZnwi7+8N3L297y9uW+x64z/3P3fe55a1veevy4T/78HLjzTcuN9100/K0W5+2vOQlL1me9IVPWm595q36ddQzy0u/4aXLl/+XX77c/+D9y6t/7NXLr7z+V5bnfPFzlve+973LD/zgDywf++THrPM/vuc/Lj/1T39quf0dty9f/5Kv9yrp1f/zq5d7Pn+P8axSsDV2cxyRDGeZHni0HiDwJy5GFn1OcGrMTFwPLHV46VdY2pFJSsrmk6KO8CPFTiBl+UJGYeGSa8PJaKljNDIC6/KcoLYCvA8aEcFbs134tngCq/TAqn7aDLbCInPWR9wDCsIEZu9/fWclT3r5cXidXHGf4wd/4Ad9gJFYnve85y0vfelLfemKpAM985LLWQR55hb95z7nucvjHve45RlPf8bytS/8Wt8ree6zn7v83rnfW1704hc5+L/vve9bPnjXB5cf/uEfXp735c/zLza++h++evmd3/md5Vu/5Vu96mCl87e/7297JfT4mx+//ORrfnL59Kc+7V+prHuG5HfqSnskusJne3rg4XhgKzYGxjHCVkuN3eDqvW/4xkKMZaP4aeGaMwqxckcnIomUzYwCoJgNYWmDSzvwWqcdvsiiToGGMtZxArjwVxradYuMwOjPcjw84LmruZ93c/lMv/d1COnE6OTyile8wttXveCrljvec8fy9re+3UlBM9rziIMJfm6ye+4J7hvs6iODLzv6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" width="211" /></span><span style="font-family: Times New Roman,serif; font-size: small;"> </span></div>
<div style="line-height: 150%; text-align: left;">
<span style="font-size: small;"> <b style="font-family: inherit;">Position
Relative to other control positions:</b></span><style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
H3 { margin-bottom: 0.08in }
H3.cjk { font-family: "Lucida Sans Unicode" }
--
</style></div>
<span style="font-family: inherit; font-size: small;">
</span><div align="JUSTIFY" style="font-family: inherit; font-style: normal; font-weight: normal; line-height: 150%; margin-bottom: 0in; margin-left: 0.06in; text-indent: -0.25in;">
<span style="font-size: small;">
</span><span style="color: black; font-size: small;"> In
this type controls are relative to other control place in layout. It
follow some properties</span></div>
<span style="font-family: inherit; font-size: small;"></span><ul>
<li><div align="JUSTIFY" style="line-height: 150%;">
<strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">android:layout_above</span></span></strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">:
the widget should be placed above the referenced widget.</span></span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">android:layout_below</span></span></strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">:
The widget should be placed below the referenced widget.</span></span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">android:layout_toRightOf</span></span></strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">:
The widget should be placed to the right of the referenced widget.</span></span></div>
</li>
<li><div align="JUSTIFY" style="line-height: 150%;">
<strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">android:layout_toLeftOf</span></span></strong><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">:
The widget should be placed above the referenced widget. </span></span>
</div>
</li>
</ul>
<span style="font-family: inherit; font-size: small;"></span><div style="font-family: inherit; line-height: 150%; text-align: left;">
<span style="font-size: small;"> </span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%;">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style><span style="font-size: small;">
</span></div>
<div align="JUSTIFY" style="color: black; font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<b><span style="font-size: small;">Example
:</span></b></div>
<div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><?xml
version=<i>"1.0"</i>
encoding=<i>"utf-8"</i>?></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><RelativeLayout</span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">android:id=<i>"@+id/widget30"</i></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">android:layout_width=<i>"fill_parent"</i></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">android:layout_height=<i>"fill_parent"</i></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">xmlns:android=<i>"http://schemas.android.com/apk/res/android"</i><i>></i></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><br />
</span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><Buttonandroid:id=<i>"@+id/widget34"</i>android:text=<i>"Button3"</i>
android:layout_height=<i>"wrap_content"</i>
android:layout_width=<i>"wrap_content"</i>android:layout_below=<i>"@+id/widget35"</i>
android:layout_alignLeft=<i>"@+id/widget35"</i>
android:layout_marginTop=<i>"165dp"</i>></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"></Button></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><Buttonandroid:id=<i>"@+id/button2"</i>android:text=<i>"Button4"</i>
android:layout_height=<i>"wrap_content"</i>
android:layout_width=<i>"wrap_content"</i>android:layout_alignBaseline=<i>"@+id/widget34"</i>
android:layout_alignBottom=<i>"@+id/widget34"</i>android:layout_alignLeft=<i>"@+id/button1"</i>></Button></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><br />
</span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><Buttonandroid:id=<i>"@+id/widget35"</i>android:text=<i>"Button1"</i>
android:layout_height=<i>"wrap_content"</i>
android:layout_width=<i>"wrap_content"</i>android:layout_alignParentTop=<i>"true"</i>
android:layout_alignParentLeft=<i>"true"</i>android:layout_marginLeft=<i>"60dp"</i>
android:layout_marginTop=<i>"171dp"</i>></Button></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><br />
</span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><Buttonandroid:id=<i>"@+id/button1"</i>android:text=<i>"Button2"</i>
android:layout_height=<i>"wrap_content"</i>
android:layout_width=<i>"wrap_content"</i>android:layout_alignBaseline=<i>"@+id/widget35"</i>
android:layout_alignBottom=<i>"@+id/widget35"</i>android:layout_alignParentRight=<i>"true"</i>
android:layout_marginRight=<i>"58dp"</i>></Button></span></div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
</div>
<span style="color: black; font-family: "Courier New",Courier,monospace; font-size: small;">
</span><div align="JUSTIFY" style="color: black; font-family: "Courier New",Courier,monospace; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"></RelativeLayout></span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: center;">
<span style="font-size: small;"><img alt="" height="400" src="data:image/png;base64,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" width="211" /></span><span style="font-family: Times New Roman,serif; font-size: small;"><span style="color: teal;"> </span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-align: left;">
<span style="font-size: small;"><br />
</span><style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">This
is just a introduction to the android application development. Hope
it was helpful. Await and keep following for the next post.</span></div>
<span style="font-size: small;">
</span>
</div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com4tag:blogger.com,1999:blog-1298619317057174466.post-83073823512239489752011-11-03T22:38:00.000-07:002011-11-04T03:09:35.646-07:00How To Run Selenium Script In Eclipse<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: inherit; text-align: right;">
<span style="color: #313131;"><span style="font-size: small;">-Dhivya Seethapathy </span></span></div>
<div style="font-family: inherit; text-align: justify;">
<span style="color: #313131;"><span style="font-size: small;">I
would like to share how to run the selenium script in Eclipse through
this blog . But before to list out the steps that i have followed, i
would like to give a brief introduction about what exactly Selenium is?</span></span><span style="font-size: small;"><b> </b></span></div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;"><b> </b></span><span style="color: black;"><span style="font-size: small;"><b> </b></span></span></div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Selenium</b></span></span><span style="color: black;"><span style="font-size: small;"> </span></span><span style="color: black;"><span style="font-size: small;">is
a portable</span></span><span style="color: black;"><span style="font-size: small;"> </span></span><span style="font-size: small;">software
testing framework</span><span style="color: black;"><span style="font-size: small;"> </span></span><span style="color: black;"><span style="font-size: small;">for</span></span><span style="color: black;"><span style="font-size: small;"> </span></span><span style="font-size: small;">web
applications </span><span style="color: black;"><span style="font-size: small;">Selenium
provides a record/playback tool for authoring tests without learning
a test scripting language.</span></span><span style="color: #36393d;"><span style="font-size: small;">
</span></span><span style="color: #36393d;"><span style="font-size: small;">Selenium
is an open source tool for web application testing. This tool is
primarily developed in Java Script and browser technologies and hence
supports all the major browsers on all the platforms.</span></span></div>
<div style="font-family: inherit;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: #36393d;"><span style="font-size: small;"><b> </b></span></span><span style="color: black;"><span style="font-size: small;"><b>Selenium
IDE</b></span></span><span style="color: black;"><span style="font-size: small;"> </span></span><span style="color: black;"><span style="font-size: small;">is
an integrated development environment for Selenium scripts. It is
implemented as a Firefox extension, and allows you to record, edit,
and debug tests.</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b> </b></span></span><span style="color: black;"><span style="font-size: small;"><b>Selenium
Remote Control</b></span></span><span style="color: black;"><span style="font-size: small;"> </span></span><span style="color: black;"><span style="font-size: small;">(RC)
is a test tool that allows you to write automated web application UI
tests in any programming language against any HTTP website using any
mainstream JavaScript-enabled browser.</span></span></div>
<div style="font-family: inherit; text-align: justify;">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Why
Selenium:</b></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Its
Open source!!</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">It’s
easy to learn and implement.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Supports
multiple browsers.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Supports
multiple scripting/programming languages.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Flexible
to your choice, simple record and playback (IDE), Complex Framework
design to your choice by using your favorite programming language.</span></span></div>
</li>
</ul>
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">Here
I would like to share how to run the selenium script in Eclipse.</span></span></span></div>
<ul style="font-family: inherit; text-align: justify;">
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Steps
to run the selenium script in eclipse:</b></span></span></div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
A:link { so-language: zxx }
-->
</style>
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Step
1: </b>Download required components</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>1.
</b>Download<b> Eclipse IDE:<a href="http://www.blogger.com/%20http://www.eclipse.org/downloads/"> http://www.eclipse.org/downloads/</a></b></span></span><a href="http://www.eclipse.org/downloads/"><span style="color: #548dd4;"><span style="font-size: small;"><b></b></span></span></a></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>2.
</b>Download<b> Selenium RC: <a href="http://seleniumhq.org/download/">http://seleniumhq.org/download/</a></b></span></span><span style="color: #548dd4;"><span style="font-size: small;"><b><br /></b></span></span><span style="color: black;"><span style="font-size: small;"><b>3.
</b>Download<b> JUnit:</b></span></span><span style="color: #548dd4;"><span style="font-size: small;"><b> <a href="http://www.junit.org/">http://www.junit.org/</a></b></span></span><a href="http://www.junit.org/"><span style="color: #548dd4;"><span style="font-size: small;"><b></b></span></span></a></div>
<div style="font-family: inherit; text-align: justify;">
<style type="text/css">
</style></div>
<div style="font-family: inherit; text-align: justify;">
<style type="text/css">
</style></div>
<div style="font-family: inherit; text-align: justify;">
<style type="text/css">
</style></div>
<div style="font-family: inherit; text-align: justify;">
<style type="text/css">
</style></div>
<div style="font-family: inherit; text-align: justify;">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Step
2: </b>Record and save the java selenium script</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Open
Firefox and enter the URL to browse your application.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Launch
IDE from Tool menu.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Record
your script.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Choose
the programming language as JAVA and save your script. To choose the
language, go to Option-> Clipboard format and select JUnit 3
(Remote Control).</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Now
you have a java code. I am making it simple and not covering
scripting in detail. My motive is to share you the end to end
process of using this IDE and RC to run a simple test using Eclipse.
Rest you can change your script as per your need. </span></span>
</div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Step
3: </b>Create a java project in Eclipse</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b> </b>The
first step in eclipse is to create a java project to do this follow
the steps below</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Launch
Eclipse.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Click
on File > New > others > select java project.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Enter
the java project name as First Project (for example).</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: black;"><span style="font-weight: normal;">Click
on finish button.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;"><span style="color: black;"><b>Step
4: </b> Add selenium java client jar and JUnit library to your project</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Right
click the project and select the properties.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Go
to java build path and select libraries tab.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Click
add external jars.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Browse
and add the selenium-java-client-driver.jar and junit4.jar from the
source where you had saved it.</span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Step
5: </b>Initiating the Selenium Server</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Open
the command prompt and run the selenium RC by below command.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">D</span></span><span style="color: black;"><span style="font-size: small;">:\selenium-remote-control-1.0.3\selenium-server-1.0.3>
java -jar selenium-server.jar</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">After
entering that command, the selenium server will start in your
machine.</span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Step
6: </b>Adding your test script in our Project</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;"><span style="color: black;">To
add your test (which you have saved earlier) as a java class file to
the project (FirstProject, already saved) follow the below steps:</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: black;">In
eclipse right click the project </span><span style="color: black;">FirstProject
select new > class </span></span>
</div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: black;">Enter
the class name as<b> </b></span><span style="color: black;">MyFirstTest</span><span style="color: black;"><b>.</b></span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Paste
the recorded code from the file you had saved it.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Choose
"com.thoughtworks.selenium.SeleneseTestCase" as its super
class.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Finish
it.</span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;"><b>Step
7: </b>Modifying your test script</span></span></div>
<div style="font-family: inherit; margin-bottom: 0in; text-align: justify;">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
</div>
<div style="margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: black;"><b> </b></span><span style="color: black;">Once
you are done with your class file, it will look like,</span></span></div>
<div style="margin-bottom: 0in;">
<br /></div>
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Package.*</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">import
com.thoughtworks.selenium.SeleneseTestCase ;</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">public
class MyFirstTest extends SeleneseTestCases</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"> <span style="font-size: small;">{
</span></span>
</div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"> <span style="font-size: small;">public
void setUp() throws Exception</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"> <span style="font-size: small;">{
</span></span>
</div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;">
<span style="font-size: small;">setUp( "
http://www.google.com/ " , "*firefox”);</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"> <span style="font-size: small;">}</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">//............
Your test script..............</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;"> public
void testUntitled() throws Exception </span></span>
</div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"> <span style="font-size: small;">{</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;"> selenium.open("http://www.google.com/");</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;"> assertEquals("Google",
selenium.getTitle());</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;"> selenium.type("id=lst-ib",
"selenium");</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;"> selenium.click("name=btnG");</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;"> }</span></span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><br />
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">}</span></span></div>
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<br />
<div style="margin-bottom: 0in;">
<br /></div>
<div style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">In
case you want to run this in different browser then simply you can
change your script.</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">setUp(
" http://www.google.com/ " , "*firefox”); to setUp(
"http://www.google.com/ " , "*chrome”); or whatever
browser you need to run.</span></span></div>
<div style="margin-bottom: 0in;">
<br /></div>
<div style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;"><b>Step
8: </b>Running your test</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in; text-indent: 0.5in;">
<span style="color: black;"><span style="font-size: small;">Finally
we are ready to run our first test. To run this in eclipse you click
on Run button. Select option Run as "JUnit Test”.</span></span></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<br /></div>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: black;"><b>Note:</b></span><span style="color: black;">
One thing I forgot to mention that if you have eclipse with JRE
version lower than 1.5 in build path, it will show some error related
to version not supporting. To resolve this you have to remove the
default Eclipse JRE and add JRE version 1.5 or more to System Library
in Build Path.</span></span></div>
<div style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">To
add this follows the steps:</span></span></div>
<ul>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Go
to Java Build path and select Libraries tab.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Under
this select JRE system Library.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Remove
your default one.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Now
click on add Library and select JRE system Library and click next.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Add
JRE.</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">Now
add this JRE to your class path.</span></span></div>
</li>
</ul>
<div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: black;"><span style="font-size: small;">So
finally I am done with your end to end execution of java test script
using selenium RC in Eclipse. </span></span>
</div>
<div style="margin-bottom: 0in;">
<br /></div>
<br />
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
</div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com219tag:blogger.com,1999:blog-1298619317057174466.post-72467697884914374122011-10-27T21:22:00.000-07:002011-10-30T21:58:50.816-07:00Testing Tools Comparison<div dir="ltr" style="text-align: left;" trbidi="on">
<style type="text/css">
<!--
@page { margin: 0.79in }
H1 { margin-top: 0in; margin-bottom: 0in; color: #365f91; page-break-inside: avoid }
H1.western { font-family: "Cambria", serif; font-size: 14pt }
H1.cjk { font-family: "PMingLiU", "新細明體"; font-size: 14pt }
H1.ctl { font-family: "Times New Roman", serif; font-size: 14pt }
P { margin-bottom: 0.08in }
-->
</style>
<br />
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<br />
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: right; text-indent: 0.25in;">
<span style="font-size: small;">(Author:Dhivya Seethapathy) </span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-indent: 0.25in;">
<span style="font-size: small;">Testing Tools</span><span style="font-size: small;">
are the tools which are used to validate and verify software programs
or Applications or Products. There are different kinds of
testing tools for different purposes. Some of the most common testing
tools features are compared here.</span></div>
<span style="font-size: small;"></span><br />
<h1 align="JUSTIFY" class="western" style="font-family: inherit; line-height: 100%;">
<span style="font-size: small;"><u>Apache
JMeter</u></span></h1>
<ul style="font-family: inherit; text-align: justify;"><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in; margin-top: 0.19in;">
<span style="font-size: small;">
</span><span style="font-size: small;"><b>Apache JMeter </b></span><span style="font-size: small;">is
</span><span style="font-size: small;">open
source software</span><span style="font-size: small;">.</span></div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">100%
pure Java desktop application designed to load test functional
behaviour and measure performance.</span></div>
</ul>
<ul style="font-family: inherit; text-align: justify;">
<li><span style="font-size: small;">It’s
a Graphical server performance testing tool, for both static and
dynamic resources (files or CGI, Servlets, Perl scripts). </span>
</li>
<li><span style="font-size: small;">It
can be used to simulate a heavy load on a server, network or object
to test its strength or to analyze overall performance under
different load types. </span>
</li>
<li><span style="font-size: small;">It
can be used to make a graphical analysis of performance or to test
the server/script/object behaviour under heavy concurrent load. </span>
</li>
<li><span style="font-size: small;">
</span><span style="font-size: small;">It
can load and performance test many different server types: </span><style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style><div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0in;">
</div>
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<div align="JUSTIFY" style="line-height: 100%; margin-bottom: 0in;">
</div>
<br /><ol><ol>
<li><span style="font-size: small;">Web
- HTTP, HTTPS SOAP </span></li>
<li><span style="font-size: small;">Database
via JDBC </span></li>
<li><span style="font-size: small;">LDAP
</span></li>
<li><span style="font-size: small;">JMS
</span></li>
<li><span style="font-size: small;">Mail
- POP3(S) and IMAP(S)</span></li>
</ol>
</ol>
<span style="font-size: small;"></span><ol>
</ol>
<span style="font-size: small;">
</span></li>
</ul>
<h1 class="western" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><u>OpenSTA</u></span></h1>
<ul style="font-family: inherit; text-align: justify;">
<li><span style="font-size: small;">
</span><span style="font-size: small;"><b>OpenSTA</b></span><span style="font-size: small;">
stands for Open System Testing Architecture. </span>
</li>
<li><span style="font-size: small;">Open
STA is to tests HTTP and HTTPS heavy load with performance
measurements from Win32 platforms.</span></li>
<li><span style="font-size: small;">Web
Load and stress testing for no cost; open source and General Public
License.</span></li>
<li><span style="font-size: small;">The
test result can be viewed, graphed, filtered and exported for use by
more sophisticated report generation software.</span></li>
<li><span style="font-size: small;">It
has the monitoring functionality.</span></li>
<li><span style="font-size: small;">OpenSTA
is capable of running at least 1000 virtual users from one users from
one machine which cannot be achieved by commercial load testing
tools.</span></li>
</ul>
<h1 class="western" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><u>HP
QTP (Quick Test Professional)</u></span></h1>
<ul style="font-family: inherit; text-align: justify;">
<li><span style="font-size: small;">
</span><span style="font-size: small;"><b>HP QuickTest
Professional</b></span><span style="font-size: small;">
performs functional and regression testing through a user interface
such as a native GUI or web interface.</span></li>
<li><span style="font-size: small;">It
works by identifying the objects in the application user interface or
a web page and performing desired operations </span>
</li>
<li><span style="font-size: small;">HP
QuickTest Professional uses a VBScript scripting language to specify
the test procedure and to manipulate the objects and controls of the
application under test. </span>
</li>
<li><span style="font-size: small;">Although
HP QuickTest Professional is usually used for "UI Based"
Test Case Automation, it also can automate some "Non-UI"
based Test Cases such as file system operations and database testing.</span></li>
<li><span style="font-size: small;">HP
QuickTest Professional cannot be used by a plug-in in non-Windows
environments. It fetches objects like ActiveX from the Windows
</span><span style="font-size: small;">environment but
not from other operating systems. QTP cannot be used to test with all
browser types and versions</span></li>
</ul>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0.19in; margin-top: 0.19in; text-align: justify;">
<span style="color: #365f91; font-size: small;"><u><b>Test
Complete </b></u></span>
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><span style="font-size: small;">
</span><span style="font-size: small;">Test Complete is an
automated testing</span><span style="color: red; font-size: small;">
</span><span style="font-size: small;">environment
for Win32, .NET and Windows Presentation Foundation (WPF)
applications.</span></li>
<li><span style="font-size: small;">Test
Complete has a built-in code editor with a set of special plug-ins
that helps testers write scripts manually. </span>
</li>
<li><span style="font-size: small;">Test
Complete records the key actions necessary to replay the test and
discards all unneeded actions.</span></li>
<li><span style="font-size: small;">Test
Complete provides extended support for testing Web Pages, Web
Servers, Web Services and Projects created in the following
development tools: </span><style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style><span style="font-size: small;"> </span><span style="font-size: small;"> </span> </li>
</ul>
<br />
<ol style="text-align: left;"><ol><ol>
<li>
<span style="font-size: small;">Microsoft Visual
C++/Borland C++ Builder</span></li>
<li>
<span style="font-size: small;">VB</span></li>
<li>
<span style="font-size: small;">Delphi</span></li>
<li>
<span style="font-size: small;">Java</span></li>
<li>
<span style="font-size: small;">.NET</span></li>
<li>
<span style="font-size: small;">WPF</span></li>
</ol>
</ol>
</ol>
<br />
<br />
<h1 class="western" style="font-family: inherit; line-height: 150%; text-align: justify;">
<span style="font-size: small;"><u>Grinder
</u></span><span style="font-size: small;">-
</span><span style="font-size: small;">A
Java Load Testing Framework</span></h1>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: inherit;">
</span></span>
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><span style="font-size: small;">Generic
Approach Load tests anything that has a Java API. This includes
common cases such as HTTP web servers, SOAP and REST web services,
and application servers (CORBA, RMI, JMS, EJBs), as well as custom
protocols.</span></li>
<li><span style="font-size: small;">Flexible
Scripting Tests are written in the powerful Jython scripting
language.</span></li>
<li><span style="font-size: small;">Distributed
Framework A graphical console allows multiple load injectors to be
monitored and controlled, and provides centralized script editing and
distribution.</span></li>
<li><span style="font-size: small;">
</span><span style="font-size: small;">Mature HTTP Support
Automatic management of client connections and cookies. SSL. Proxy
aware</span><span style="color: red; font-size: small;"><b>.
</b></span><span style="font-size: small;">Connection
throttling. Sophisticated record and replay of the interaction
between a browser and a web site.</span></li>
</ul>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0.19in; margin-top: 0.19in; text-align: justify;">
<span style="color: #365f91; font-size: small;"><u><b>Selenium-RC</b></u></span></div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0.19in; margin-top: 0.19in; text-align: justify;">
<span style="font-size: small;">
</span><span style="font-size: small;">Selenium Remote Control
(RC) is a test tool that allows you to write automated web
application UI tests in any programming language against any HTTP
website using any mainstream JavaScript-enabled browser. It is great
for testing complex AJAX-based web user interfaces under a Continuous
Integration system.</span></div>
<div style="text-align: justify;">
<span style="font-size: small;"><span style="font-family: inherit;">
</span></span></div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; margin-top: 0.19in; text-align: justify;">
<span style="font-size: small;">
</span><span style="font-size: small;">Selenium RC comes in
two parts. </span></div>
<ul style="font-family: inherit; text-align: left;">
<li style="text-align: justify;"><span style="font-size: small;">A server which
automatically launches and kills browsers, and acts as a HTTP proxy
for web requests from them.</span></li>
<li><div style="line-height: 150%; margin-bottom: 0in; margin-top: 0.19in; text-align: justify;">
<span style="font-size: small;">Client libraries for
your favorite computer language.</span></div>
</li>
</ul>
<span style="font-size: small;"><span style="font-family: inherit;">
</span></span><br />
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0.19in;">
<span style="color: #365f91; font-family: inherit; font-size: small;"><u><b>Tools
Comparison</b></u></span><style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
</div>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0.19in;">
</div>
<table border="1" cellpadding="6" cellspacing="0">
<colgroup><col width="36*"></col>
<col width="40*"></col>
<col width="28*"></col>
<col width="36*"></col>
<col width="35*"></col>
<col width="50*"></col>
<col width="30*"></col>
</colgroup><tbody>
<tr valign="TOP">
<td height="39" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><b>Key
Features</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><b>Test
Complete</b></span></span></div>
</td>
<td width="11%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>QTP</b></span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><b>Grinder</b></span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><b>Jmeter</b></span></span></div>
</td>
<td width="19%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><b>OpenSTA</b></span></span></div>
</td>
<td width="12%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"><b>Selenium-RC</b></span></span></div>
</td>
</tr>
<tr valign="TOP">
<td height="15" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Cost</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">License</span></span></div>
</td>
<td width="11%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">License</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Open
source</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Open
source</span></span></div>
</td>
<td width="19%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Open
source</span></span></div>
</td>
<td width="12%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Open
source</span></span></div>
</td>
</tr>
<tr valign="TOP">
<td height="13" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Automation</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">Record
and Playback</span></span></div>
</td>
<td width="11%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">Record
and Playback</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Record
and Playback</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Record
and Playback</span></span></div>
</td>
<td width="19%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Record
and Playback</span></span></div>
</td>
<td width="12%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Record
and Playback</span></span></div>
</td>
</tr>
<tr valign="TOP">
<td height="15" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Multilingual</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">Yes</span></span></div>
</td>
<td width="11%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">Yes</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">NO</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">No</span></span></div>
</td>
<td width="19%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">No</span></span></div>
</td>
<td width="12%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">NO</span></span></div>
</td>
</tr>
<tr valign="TOP">
<td height="13" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Scripting
language</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.VBScript </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.JScript </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.C++Script </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">4.C#Script </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">5.DelphiScript</span></span></div>
</td>
<td width="11%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.VBScript </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.JavaScript </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.VC++</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Python
scripting language.</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">JavaScript</span></span></div>
</td>
<td width="19%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Script
Control Language</span></span></div>
</td>
<td width="12%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Java </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;"> 2.Perl </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.Python 4.C# </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">5.Ruby </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">6.HTML </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">7.PHP</span></span></div>
</td>
</tr>
<tr valign="TOP">
<td height="15" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Supported
techno-logies</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Web</span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.Java </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">
3..Net </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">
4.WPF </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">
5.SAP</span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">6.Oracle </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">7.Siebel </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">8.PeopleSoft </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">9.Delphi </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">10.PowerBuilder </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">11.Stingray1 </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">12.Terminal Emulator </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">13.Flex </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">14.Webservices </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">15.Windows Mobile </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">16.Visual Edge </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">17.SOAP </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">18.Mainframe
terminal</span></span></span></div>
</td>
<td width="11%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Web </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">
2.VB </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.VC++ </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">4.Java </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">5.Power Builder </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">6.Delphi </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">7.Dot Net </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">8.SAP </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">9.Siebel </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">10.Flash </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">11.Oracle Apps </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">12.People
Soft </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">13.Terminal Emulator </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">14.HTML </span></span></div>
<div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">15.XML</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Java</span></span></div>
</td>
<td width="14%"><div align="JUSTIFY" style="margin-bottom: 0.19in;">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Java</span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0.19in; margin-top: 0.19in;">
<br />
<br /></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="19%"><div align="JUSTIFY" style="margin-bottom: 0.19in;">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">It
record http request.</span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="12%"><div align="JUSTIFY" style="margin-bottom: 0.19in;">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">record
http request.</span></span></div>
<div align="JUSTIFY" style="margin-top: 0.19in;">
<br /></div>
</td>
</tr>
<tr valign="TOP">
<td height="225" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Testing
Type</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Functional
(GUI) testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.Unit testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.Regression
testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">4.White-box testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">5.Data-driven
testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">6.Keyword-driven testing </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">7.Load, stress and scalability testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">8.Distributed
testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">9.Coverage testing<br /> </span></span></span></div>
<div align="JUSTIFY">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">10.Manual testing</span></span></span></div>
</td>
<td width="11%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Functional
testing </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.Regression testing </span></span></span>
</div>
<div align="JUSTIFY" style="margin-top: 0.19in;">
<br /></div>
</td>
<td width="14%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Load
testing </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Capacity testing </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.Stress testing</span></span></span></div>
<div align="JUSTIFY" style="margin-top: 0.19in;">
<br /></div>
</td>
<td width="14%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Loadtesting </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Performance testing</span></span></span></div>
<div align="JUSTIFY" style="margin-top: 0.19in;">
<br /></div>
</td>
<td width="19%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Load
testing </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Performance testing </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.Stress testing</span></span></span></div>
<div align="JUSTIFY" style="margin-top: 0.19in;">
<br /></div>
</td>
<td width="12%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Functional
testing </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Regression testing</span></span></span></div>
<div align="JUSTIFY" style="margin-top: 0.19in;">
<br /></div>
</td>
</tr>
<tr valign="TOP">
<td height="169" width="14%"><div align="JUSTIFY">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Supported
Browser</b></span></span></div>
</td>
<td width="16%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Internet
Explorer </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.Firefox </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.Netscape
Navigator</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="11%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">It
support to recording the test only on Internet Explorer and It
supports running tests on the other browsers </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Internet Explorer </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.Netscape Navigator </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.AOL </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">8.0,9.0 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">4.Firefox</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="14%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Internet
Explorer </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Firefox </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.Netscape</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="14%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Internet
Explorer </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Firefox </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.Netscape</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="19%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">For
HTTPS recording </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Internet Explorer
4<br /> </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2. Internet Explorer 5<br /> </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3. Netscape 4.7 </span></span></span>
</div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="12%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Firefox5
<br /> </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Firefox4 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.Forefox3 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">4.IE9 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">5.IE8 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">6.IE7 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">7.Safari3 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">8.Safari2 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">9.Opera9 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">10.Opera8</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
</tr>
<tr valign="TOP">
<td height="168" width="14%"><div align="JUSTIFY" style="margin-bottom: 0.19in;">
<span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;"><b>Supported
os</b></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="16%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Micosoft
Windows 2000 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.Micosoft Windows
XP </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.Microsoft Windows Server
2003 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">4.Microsoft Windows Server 2008 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">5.Micosoft Windows Vista </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">6.Microsoft Windows 7</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="11%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">1.Micosoft
Windows 2000 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">2.Micosoft Windows XP </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">3.Windows NT </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">4.Windows 95/98.ME </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">5.Windows 7 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">6.Windows Vista </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: xx-small;">7.Windows Server 2008 R2</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="14%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">Os
Independent</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="14%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Unix
(Solaris,Linux,etc) </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Windows(98,NT,XP) </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.OpenVMS Alpha 7.3+</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="19%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.windows
2000 NT4 and XP </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.Win2K </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.WinNT </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">4.Microsoft Windows Server 2003 </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">5.WinXP </span></span></span>
</div>
<div align="JUSTIFY">
<br /></div>
</td>
<td width="12%"><div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">1.Windows
<br /> </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">2.OS X <br /> </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">3.Linux <br /> </span></span></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: black;"><span style="font-family: Verdana,sans-serif;"><span style="font-size: x-small;">4.Solaris</span></span></span></div>
<div align="JUSTIFY">
<br /></div>
</td>
</tr>
</tbody></table>
<div align="JUSTIFY" style="line-height: 150%; margin-bottom: 0.19in; margin-top: 0.19in;">
<br />
<br /></div>
</div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com167tag:blogger.com,1999:blog-1298619317057174466.post-67439766999851186552011-10-27T20:48:00.000-07:002011-10-27T20:48:28.460-07:00Deleting Session Data,Cookies and Internet Cache<div dir="ltr" style="text-align: left;" trbidi="on">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: right;">
<span style="font-size: small;"> (Author: Shanthi Karthika)</span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Session Management
is the major piece of application development. Maintaining a session
will enable the user to login without giving their credentials for
the second time. If we want to avoid the user re-login with same
credentials we have to clear the session where the user credentials
are present which enable the user to login again and again.</span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">
</span><span style="font-size: small;">Recently
I was in need to access each social medias (gmail,twitter and
facebook) login page to get the user credentials. Here each social
medias will maintain a session each time I make a request to access
the page. Because of this, I faced a problem once a user provides
their credential to the twitter or facebook a session was maintained,
so that when I passed the request for the second time the credentials
of the same user who have logged before were passed. Because of this
the next users credentials or the different credentials of the same
user were not able to pass. I struck upon with this half past a day.
I tried deleting the cookies and Internet cache of my browser that i
used, but nothing gave me a hand. Then I came to know each media
maintains a session so that it can get the credentials of the user
first logged in. </span>
</div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">
</span><span style="font-size: small;">To delete
the session data following code can be followed. </span>
</div>
<div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<span style="font-family: Times New Roman,serif;"><span style="font-size: small;"><b> </b></span></span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">private const int
INTERNET_OPTION_END_BROWSER_SESSION = 42;</span></div>
<span style="font-family: "Courier New",Courier,monospace;">
</span><div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<br />
</div>
<div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<b><span style="font-family: Times New Roman,serif;"><span style="font-size: small;">DLL for
deleting session data:</span></span></b></div>
<div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<br />
</div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">[DllImport("wininet.dll",
SetLastError = true)]</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">private static
extern bool InternetSetOption(IntPtr hInternet, int dwOption, IntPtr
lpBuffer, int lpdwBufferLength);</span></div>
<div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<br />
</div>
<div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<span style="font-family: Times New Roman,serif;"><span style="font-size: small;"><b>Use this
method wherever need to clear session.</b></span></span></div>
<div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<br />
</div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">InternetSetOption(IntPtr.Zero,
INTERNET_OPTION_END_BROWSER_SESSION, IntPtr.Zero, 0);</span></div>
<div style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<br />
</div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">I used this
method to clear the session datas and that worked fine. Now i am able
to pass the request and get the different credentials.</span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">On trying to delete
the Internet cache and the cookies.I found many samples stating the
same process of getting all the files in which cookie were present.
But I found a difficulty in deleting index.dat file. I searched for
half past day for deleting the cookies and cache. Finally I got up
with the following solution </span>
</div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">System.Diagnostics.Process.Start("rundll32.exe",
"InetCpl.cpl,ClearMyTracksByProcess 8"); // Clear
Temporary Files </span>
</div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;"> </span></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">System.Diagnostics.Process.Start("rundll32.exe",
"InetCpl.cpl,ClearMyTracksByProcess 2"); // Clear Cookies
</span>
</div>
<div align="JUSTIFY" style="line-height: 100%; margin-bottom: 0in; orphans: 0; widows: 0;">
<br />
</div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">with this it
attempts to open a seperate window which is not needed for a user. To
rectify this new window opening,following can be done which runs as a
background process.</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">try</span></span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">{</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">System.Diagnostics.ProcessStartInfo
processInfo = </span><span style="color: blue;"><span style="font-size: small;">new</span></span><span style="font-size: small;">
System.Diagnostics.ProcessStartInfo(</span><span style="color: #7f0000;"><span style="font-size: small;">"rundll32.exe"</span></span><span style="font-size: small;">,
</span><span style="color: #7f0000;"><span style="font-size: small;">"InetCpl.cpl,ClearMyTracksByProcess
8"</span></span><span style="font-size: small;">);</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">processInfo.CreateNoWindow
= </span><span style="color: blue;"><span style="font-size: small;">true</span></span><span style="font-size: small;">;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">processInfo.WindowStyle
= ProcessWindowStyle.Hidden;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">processInfo.UseShellExecute
= </span><span style="color: blue;"><span style="font-size: small;">true</span></span><span style="font-size: small;">;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">processInfo.RedirectStandardOutput
= </span><span style="color: blue;"><span style="font-size: small;">false</span></span><span style="font-size: small;">;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">Process.Start(processInfo);</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<br />
</div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">System.Diagnostics.ProcessStartInfo
newprocessInfo = </span><span style="color: blue;"><span style="font-size: small;">new</span></span><span style="font-size: small;">
System.Diagnostics.ProcessStartInfo(</span><span style="color: #7f0000;"><span style="font-size: small;">"rundll32.exe"</span></span><span style="font-size: small;">,
</span><span style="color: #7f0000;"><span style="font-size: small;">"InetCpl.cpl,ClearMyTracksByProcess
2"</span></span><span style="font-size: small;">);</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;"> </span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">newprocessInfo.CreateNoWindow
= </span><span style="color: blue;"><span style="font-size: small;">true</span></span><span style="font-size: small;">;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">newprocessInfo.WindowStyle
= ProcessWindowStyle.Hidden;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">newprocessInfo.UseShellExecute
= </span><span style="color: blue;"><span style="font-size: small;">true</span></span><span style="font-size: small;">;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">newprocessInfo.RedirectStandardOutput
= </span><span style="color: blue;"><span style="font-size: small;">false</span></span><span style="font-size: small;">;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">Process.Start(newprocessInfo);</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">}</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">catch</span></span><span style="font-size: small;">(</span><span style="color: #007f7f;"><span style="font-size: small;">Exception</span></span><span style="font-size: small;">
error)</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">{</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">throw</span></span><span style="font-size: small;">
error;</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">} </span></div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">you cannot see any
window but the cache and cookies will be deleted. </span>
</div>
<div align="JUSTIFY" style="font-family: inherit; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">The above code
will delete all the cookies and Temporary files but the code below
can be used for deleting particular cookies. Here I have given about
deleting only gmail cookies.</span></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;"> </span></span></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">String[]</span></span><span style="font-size: small;">gmailCookies=System.IO.</span><span style="color: #007f7f;"><span style="font-size: small;">Directory</span></span><span style="font-size: small;">.GetFiles(</span><span style="color: #007f7f;"><span style="font-size: small;">Environment</span></span><span style="font-size: small;">.GetFolderPath(</span><span style="color: #007f7f;"><span style="font-size: small;">Environment</span></span><span style="font-size: small;">.</span><span style="color: #007f7f;"><span style="font-size: small;">SpecialFolder</span></span><span style="font-size: small;">.Cookies));</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">foreach</span></span><span style="font-size: small;">
(</span><span style="color: blue;"><span style="font-size: small;">string</span></span><span style="font-size: small;">
currentFile </span><span style="color: blue;"><span style="font-size: small;">in</span></span><span style="font-size: small;">
gmailCookies)</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">{</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">if</span></span><span style="font-size: small;">
(!(currentFile.EndsWith(“index.dat”)))</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">{</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">using</span></span><span style="font-size: small;">
(</span><span style="color: #007f7f;"><span style="font-size: small;">StreamReader</span></span><span style="font-size: small;">
streamreader = </span><span style="color: #007f7f;"><span style="font-size: small;">File</span></span><span style="font-size: small;">.OpenText(currentFile))</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">{</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">string</span></span><span style="font-size: small;">
readContent = streamreader.ReadToEnd();</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="color: blue;"><span style="font-size: small;">if</span></span><span style="font-size: small;">
(readContent.Contains(“google.com”)
||readContent.Contains(“google.co.in”))</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">{</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">streamreader.Dispose();</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">streamreader.Close();</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">System.IO.</span><span style="color: #007f7f;"><span style="font-size: small;">File</span></span><span style="font-size: small;">.Delete(currentFile);</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">}</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">}</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
</div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">}</span></div>
<div style="font-family: "Courier New",Courier,monospace; line-height: 100%; margin-bottom: 0in;">
<span style="font-size: small;">}</span></div>
<div style="margin-bottom: 0in;">
<br />
</div>
</div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com24tag:blogger.com,1999:blog-1298619317057174466.post-29942009124861874682011-10-13T02:41:00.000-07:002011-10-13T02:41:24.252-07:00Whats in store In the mobile app store<div dir="ltr" style="text-align: left;" trbidi="on">
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;"> The mobile phones
we use daily have come a long way and has changed from just being
used to make calls,it has become a super hero device.[probably why
they are categorized as smart phones?].</span></div>
<div style="font-family: inherit;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<br />
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">People buying mobile
phones are on the rise and app store support to the mobiles plays a
major role in the sales of the mobile phones.Now i can get the
question in your mind.Does my mobile have an app store?</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">Read the remaining
of the document to get your queries cleared.</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">Lets come to the
point.What are the major app stores available</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">The current major
app stores present in the market are as follows:-</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<br /></div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">1. OVI Store.(Nokia)</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">2. Google Android
Market.(Google).</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">3. Apple App Store.
(Apple)</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">4. Samsung Apps
Store.(Samsung)</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">5. BlackBerry App
World. (Black berry)</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">6. Windows
MarketPlace for Mobile.(Microsoft)</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">7. Palm App Catalog.
(hp)</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">8. Play Now Arena.
(Sony Ericsson)</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">9. Mobile
Applications Store.(Dell).</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">10. LG Application
Store.(LG).</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<br />
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">Consider that the
app store given here mainly deals with the major app store supported
by the device manufacturers & mobile os and the third party
independent apps store & operator provided </span>
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">app store are not
dealt with.(Probably they would be dealt with the part 2 series).</span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<br />
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">1. <b>OVI Store.
(Nokia) :-</b></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<a href="http://store.ovi.com/">http://store.ovi.com/</a><br />
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">May
26, 2009</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Applications:-
83579 +apps</span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Current OS
Version:- Symbian anna.</span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:- OVI brand will discontinue and services are rebranded as Nokia
brand.</span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;">2. <b>Android App
Market.(Google) :-</b></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="https://market.android.com/?hl=en">https://market.android.com/?hl=en</a></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">Oct
22, 2008</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Applications:-
2,50,000 + apps officially</span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Current OS
Version:-<span style="color: black;">2.3 (Gingerbread)</span><span style="color: #262626;">
.</span><span style="color: black;">3.2 (Honeycomb)</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-</span></span><span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Android
Icecream Sandwich. the one mobile OS to run on both tablets as well
as smartphones.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;"><span style="color: #262626;">3</span><span style="color: #262626;">. <b>iPhone
App Store. (Apple) </b></span><b><span style="color: #262626;">:-</span></b></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: #262626;">
</span><span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="http://itunes.apple.com/...">itunes.apple.com/...</a></span></span><span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">
</span></span></span>
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: #262626;">Launch
date:-</span><span style="color: #262626;">Jul 10, 2008</span><span style="color: #262626;">
</span><span style="color: #262626;"> </span></span>
</div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Applications:-
<span style="color: black;">5,00,000+</span> apps officially</span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Current OS
Version:-iOS 4.3</span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-The launch of os iOS 5.0 with 200+new features.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="font-size: small;"><span style="color: #262626;">4.</span><span style="color: #262626;"> <b>Samsung
apps:(Samsung) :-</b></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="color: blue; font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<a href="http://www.samsungapps.com/topApps/topAppsGate.as%20">http://www.samsungapps.com/topApps/topAppsGate.as </a></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;"><span style="color: #262626;">Launch
date:-</span><span style="color: #262626;">Sep 14, 2009</span><span style="color: #262626;">
</span><span style="color: #262626;"> </span></span>
</div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Applications:-
40,000 +apps.</span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">No.of
countries:-118.</span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-</span></span></span><span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Samsung
will start supporting content for HDTVs in the store.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: #262626;"><span style="font-size: small;">5. <b>Black
berry App world. (RIM) :-</b></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="http://us.blackberry.com/apps-software/appworld/">http://us.blackberry.com/apps-software/appworld/</a></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">Apr
1, 2009</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Applications:-
<span style="color: #262626;">37,176 +apps.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Current OS
Version:-<span style="color: black;">7.0 </span></span>
</div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-The release of </span></span></span><span style="color: black;"><span style="font-size: small;"><span style="font-weight: normal;">blackberry
app world 3.0 with improved UI,searching and payment options.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: black;"><span style="font-size: small;">6. <b>Windows
marketPlace.(Micro soft):-</b></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="http://marketplace.windowsphone.com/">http://marketplace.windowsphone.com/</a></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">Oct
6, 2009</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Applications:-
<span style="color: #262626;">2,367 +apps.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Current OS
Version:-<span style="color: black;">7.5 (mango)</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-</span></span></span><span style="color: #353535;"><span style="font-size: small;"><span style="font-weight: normal;">
features like multi tasking,hands free messaging and social
networking have been integrated with the latest OS.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span style="color: #353535;"><span style="font-size: small;">7. Palm
app catalog. (hp):-</span></span></b></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="http://h41112.www4.hp.com/promo/webos/us/en/apps.html.">http://h41112.www4.hp.com/promo/webos/us/en/apps.html.</a></span></span><span style="color: #353535;"><span style="font-size: small;"><u><span style="font-weight: normal;"></span></u></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">Jun
6, 2009</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Applications:-
<span style="color: #262626;">7,062 +apps.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Current OS
Version:-Web OS <span style="color: black;">2.1.2 (Veer)</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-</span></span></span><span style="color: black;"><span style="font-size: small;"><span style="font-weight: normal;">HP
announced plans for a version of webOS</span></span></span><span style="color: #353535;"><span style="font-family: Times New Roman,serif;"><span style="font-size: small;"> by
the end of 2011 to run within the Microsoft Windows operating system.</span></span></span>
<span style="color: #353535;"><span style="font-size: small;"><span style="font-weight: normal;"></span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span style="color: #353535;"><span style="font-size: small;">8. play
now. (sony ericsson):-</span></span></b></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="http://www.sonyericsson.com/cws/products/services/playnow.">http://www.sonyericsson.com/cws/products/services/playnow.</a></span></span><span style="color: #353535;"><span style="font-size: small;"><u><span style="font-weight: normal;"></span></u></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">Aug
10, 2009 </span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Supported
platforms:- java,symbian & window<span style="color: #262626;">.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">No of countries
accessible:-<span style="color: black;">35</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-</span></span></span><span style="color: #353535;"><span style="font-size: small;"><span style="font-weight: normal;">No
registration,submission,yearly,service fee.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span style="color: #343434;"><span style="font-size: small;">9. mobile
applications store.(Dell):-</span></span></b></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="http://dellmobileappstore.com/DellLanding.jsp?siteId=658">http://dellmobileappstore.com/DellLanding.jsp?siteId=658</a></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">Aug
12, 2010</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Supported
platforms:- Android,blackberry,windows mobile,palm,symbian</span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">No of apps
present:-<span style="color: #262626;">50,000 </span><span style="color: black;">+apps</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-The introduction of </span></span></span><span style="color: #343434;"><span style="font-size: small;"><span style="font-weight: normal;">Gift
certificates that can be used to gift apps to your loved ones.</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span style="font-size: small;"><span style="color: #343434;">10.
</span><span style="color: #343434;">LG Application Store. (LG):-</span></span></b></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: navy;"><span lang="zxx"><u><span style="font-size: small;"><span style="font-weight: normal;"></span></span></u><a href="http://www.lgapplication.com/web.gateway.dev.">http://www.lgapplication.com/web.gateway.dev.</a></span></span><span style="color: #343434;"><span style="font-size: small;"><span style="font-weight: normal;"></span></span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<ul style="font-family: inherit; text-align: justify;">
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Launch date:-<span style="color: #262626;">Jul
14, 2009</span><span style="color: #262626;">.</span></span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">Supported
platforms:- Android.</span></div>
</li>
<li><div style="font-weight: normal; line-height: 150%; margin-bottom: 0in;">
<span style="font-size: small;">No of apps
present:-3<span style="color: #262626;">000</span><span style="color: #262626;">
</span><span style="color: black;">+apps</span></span></div>
</li>
<li><div style="line-height: 150%; margin-bottom: 0in;">
<span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">Whats
hot:-</span></span></span><span style="color: #343434;"><span style="font-size: small;"><span style="font-weight: normal;">Use
Points to download apps which you can </span></span></span><span style="color: #262626;"><span style="font-size: small;"><span style="font-weight: normal;">earn
by doing various things like logging in to the site, recommending
the site to others and rating your downloads.a</span></span></span></div>
</li>
</ul>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<br />
</div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<b><span style="color: #343434;"><span style="font-size: small;">The
final verdict:-</span></span></b></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: #343434;"><span style="font-size: small;">So
after reviewing all the apps store the hard question comes...which is
the best.?</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: #262626;"><span style="font-size: small;">With
5 million + apps and more than 1 billion downloads and creating the
revolution in the mobile industry by creating the first one stop
solution for buying and selling apps,</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: justify;">
<span style="color: #262626;"><span style="font-size: small;">The
apple app store wins the mobile app store war hands down...</span></span></div>
<div style="font-family: inherit; text-align: justify;">
</div>
<div style="font-family: inherit; font-weight: normal; line-height: 150%; margin-bottom: 0in; text-align: right;">
-Pranavanathan Ponnusamy<br />
</div>
</div>CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com3tag:blogger.com,1999:blog-1298619317057174466.post-24255325137542917372011-10-04T20:19:00.000-07:002011-10-04T20:57:40.591-07:00Crowdtesting<div dir="ltr" style="text-align: left;" trbidi="on">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
A:link { color: #0000ff }
-->
</style>
<br />
<div align="JUSTIFY" style="margin-bottom: 0in; text-indent: 0.5in;">
The
latest buzz word in the Software Testing world is the ‘Crowdtesting’.
The Crowd is an initiative by the software testing club. Here the
people work as a group through online community forums. It is close
interaction and better understanding of the software testing world
that allow us to deliver testing related services with the help of
community.
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in; text-indent: 0.5in;">
Crowdtesting
depends on a crowd that is composed out of a large group of diverse
people. This may be the most important part of crowd testing, to
create crowd. A crowd should consist out of test experts, specialty
testers, novice users and everybody else that want to test. A small
group of 10 people with the same background gives crowdtesting no
added value. But they should not only be of various test knowledge,
but preferably also from different backgrounds and even different
languages. The more different views there are on an application, the
more different vies that can help get a better product</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="color: black;">
<span style="font-size: large;">Reason for Crowdtesting</span></div>
<ul>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Reduce costs</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Shorter time to
market</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Mutual concern in
the crowd</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
More hands</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Newly developed or
updates of third party software</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Testing and support
for multiple platforms</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Informal check of
load and performance</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Marketing of a new
product
</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Find support for new
product</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Received feedback on
usability</div>
</li>
</ul>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-size: large;">Applications</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
</div>
<ul>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Lots of feedback</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
No sensitive data or
functionality</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Multi-platform
software
</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Large end-to-end
systems</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Games</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Beta software</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Load &
performance testing</div>
</li>
<li><div align="JUSTIFY" style="margin-bottom: 0in;">
Mobile software</div>
</li>
</ul>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
Crowd testing will soon
become synonyms with community testing. There will be tighter
integration of “knowledgeable” users. Crowd testing integrated
into overall testing strategy. Treat crowd testing as one of a basket
of services used in combination with the optimal tool. Infrastructure
and test type combinations as dictated by the overall test strategy.
As organization and industry mature, crowd testing will gradually
increases into the testing community.</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-size: large;">Crowdtesting Web
Portals</span><b>:</b></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<b> </b></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: blue;"><u><a href="http://www.99tests.com/"><b>www.99tests.com</b></a></u></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="color: blue;"><u><a href="http://www.utest.com/"><b>www.uTest.com</b></a></u></span><b>
</b>
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<a href="http://www.99tests.com/" style="color: blue;"></a></div>
<br />
<div style="text-align: right;">
<span style="color: blue;"><b><span style="color: black;">-Balaji Sriramamoorthy</span></b></span></div>
</div>
CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com4tag:blogger.com,1999:blog-1298619317057174466.post-4148601505885971502011-09-28T22:32:00.000-07:002011-09-28T22:32:37.699-07:00Difference between Objective C and C#.NET - I<div dir="ltr" style="text-align: left;" trbidi="on">
<style type="text/css">
<!--
@page { margin: 0.79in }
P { margin-bottom: 0.08in }
-->
</style>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-size: small;">
I am a newbie to Mac. I have seen people saying that learning a new
programming language each year is worthy to enrich programming skills
.As a beginner to the IT field I feel interesting to explore new
things . I would like to share the knowledge I am gaining in finding
out the difference between C#.</span><span style="font-size: small;"><span style="font-style: normal;">NET</span></span><span style="font-size: small;"> and Objective C Programming
languages through my blogs so that this will be helpful for any one
moving from C# to Objective C.</span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<span style="font-size: small;"><span style="font-style: normal;">A
direct comparison of both the language seams to be awkward as both
are built to use different platform, different frame work, different
development environment. Objective C uses Cocoa and Cocoa touch
frameworks where as C# language is built to use .NET frame work. Both
are rich frameworks in their own purpose and rights as Cocoa and
Cocoa touch targets the Mac OS X & iPhone,iPad respectively and
.</span></span><span style="font-size: small;"><span style="font-style: normal;">NET</span></span><span style="font-size: small;"><span style="font-style: normal;"> </span><em><span style="font-style: normal;">obviously
the Windows. Similar case with the IDE also, Xcode is the common IDE
used for developing Mac application. And Visual studio the usual IDE
used for coding C#.</span></em></span><span style="font-size: small;"><span style="font-style: normal;">NET</span></span><span style="font-size: small;"><em><span style="font-style: normal;">.</span></em></span></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;"> </span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;"> To
begin with syntactically Objective C which is advanced form of C by
adding object orientation to it. Where as C# I would say derived from
C++ and JAVA. The major difference in both these language comes in
fact that C# has a dot notation to access methods. Objective C talks
within objects by passing messages. C# releases the head ache
of separating the declaration from implementation of classes and
methods when compared to Objective C. Unlike C#, in Objective C the
classes and methods are declared at one end and implemented at other
end. I would like to introduce the way how Objective C differs
syntactically for declaring class and methods. </span></span></em>
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">For
any xcode project using objective C two files are created by default
one in where the declaration is done called .h file and .m where the
implementation take place.To declare and implement a class and a
method in C#</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<br /></div>
<div style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in; text-align: justify;">
<em><span style="font-size: small;"><span style="font-style: normal;">public
class addition</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">{</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">public
void add(int a,int b)</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">{</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">//codes
for operation....</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">//.....</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">//......</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">}</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">}</span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">where
as in Objective C the code is </span></span></em><span style="font-size: small;"> </span>
</div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">@interface
addition</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">{</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">//variable
declaration </span></span></em>
</div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">}</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">-void
add:(int)a:(int)b;</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">@end</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">@implementation
addition</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">-void
add:(int)a:(int)b;</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">{</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">//codes
for operation......</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">//.....</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">//.....</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">}</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">@end</span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="color: #280099;"><span style="font-size: small;"><span style="font-style: normal;"><span style="font-weight: normal;">@interface</span></span></span></span></em><em><span style="font-size: small;">
</span></em><em><span style="font-size: small;"><span style="font-style: normal;">is the
keyword used to declare a class and not similar to interface in c#
.If you are looking for the </span></span></em><em><span style="color: #280099;"><span style="font-size: small;"><span style="font-style: normal;">interface</span></span></span></em><em><span style="font-size: small;">
</span></em><em><span style="font-size: small;"><span style="font-style: normal;">equivalent
of C# in Objective C then it is '</span></span></em><em><span style="color: #280099;"><span style="font-size: small;"><span style="font-style: normal;">@protocol'</span></span></span></em><em><span style="font-size: small;">
</span></em><em><span style="font-size: small;"><span style="font-style: normal;">in
Objective C. Any class started must end with an '</span></span></em><em><span style="color: #280099;"><span style="font-size: small;"><span style="font-style: normal;">@end</span></span></span></em><em><span style="font-size: small;"><span style="font-style: normal;">'
as shown above. The function 'add' is declared in the class with two
parameters separated by the colon . The implementation is done in .m
file .</span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">To
call a function in C# we go for </span></span></em>
</div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">addition
addobject = new addition();</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">addobject.add(5,2);</span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br /></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">This
could be accomplished in Objective C through the following codes</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">addition
*addobject = [[addition alloc]init];</span></span></em></div>
<div align="JUSTIFY" style="font-family: "Courier New",Courier,monospace; margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">[addobject
add:5:2];</span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em> </em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em> </em><em><span style="font-size: small;"><span style="font-style: normal;">Another
interesting thing that I noticed was the string syntax in objective C
and C#. I have used regular expression in C#.</span></span></em><span style="font-size: small;"><span style="font-style: normal;">NET</span></span><em><span style="font-size: small;"><span style="font-style: normal;"> where I used @
symbol with strings in double quotes to denote quoted string
literals. Where as in Objective C it denote the CoreFoundation string
.</span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<em><span style="font-size: small;"><span style="font-style: normal;">Another
major fact for any person new to Objective C is the memory
management. C# provides automatic garbage collection and these has to
be done manually in IOS. (ie) every call to alloc should be matched
with end of current scope.I would also like to explain the concept of
memory management in my up coming blogs..</span></span></em></div>
<div style="margin-bottom: 0in; text-align: right;">
<em><span style="font-size: small;"><span style="font-style: normal;"><b>Rashid
Khaleefa..</b></span></span></em></div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br />
</div>
<div align="JUSTIFY" style="margin-bottom: 0in;">
<br />
</div>
</div>
CSS Corp Labshttp://www.blogger.com/profile/04243355510554494627noreply@blogger.com6