<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Symbol LABoratory &#187; interface</title>
	<atom:link href="http://lab.symboltech.hu/tag/interface/feed/" rel="self" type="application/rss+xml" />
	<link>http://lab.symboltech.hu</link>
	<description>Kreativitás és Innováció a szoftveriparban</description>
	<lastBuildDate>Tue, 03 Jan 2012 14:24:56 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>Diagram engine &#8211; miért C#</title>
		<link>http://lab.symboltech.hu/2009/07/diagram-engine-miert-c/</link>
		<comments>http://lab.symboltech.hu/2009/07/diagram-engine-miert-c/#comments</comments>
		<pubDate>Mon, 06 Jul 2009 05:50:38 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Hírek]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[customcontrol]]></category>
		<category><![CDATA[diagram]]></category>
		<category><![CDATA[fejlesztés]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[paint]]></category>
		<category><![CDATA[szoftver]]></category>
		<category><![CDATA[zorder]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=151</guid>
		<description><![CDATA[Ügyviteli rendszereknél ritka, hogy diagramot jelenítünk meg valamit, hiszen minden adat táblákban van, azok megjelenítéséhez pedig ideális valamiféle grid.]]></description>
			<content:encoded><![CDATA[<p>Ügyviteli rendszereknél ritka, hogy diagramot jelenítünk meg valamit, hiszen minden adat táblákban van, azok megjelenítéséhez pedig ideális valamiféle grid. Néha szoktak beépített grafikon segítségével felhasználókat elképráztatni, de az egyedi rajzolásos digram nem mindennapos.</p>
<p>Az üzletkötőink, ügyviteli szakembereink sem értették, hogy mit akarunk ezzel, miért nem jó szerintünk a sima kis lista. Csak a végén értették meg, hogy mit is akartunk.</p>
<p><strong>Ezt:</strong></p>
<p><img class="aligncenter size-full wp-image-252" title="voucherdiagram" src="http://lab.symboltech.hu/wp-content/uploads/2009/07/voucherdiagram.jpg" alt="voucherdiagram" width="700" height="495" /></p>
<p>Hogyan is jött létre ez a &#8211; <em>joggal innovációnak nevezhető</em> &#8211; modul, amely minden ügyviteli termékünkben megjelenik és sok pozitív felhasználói visszajelzést indukált? A bizonylatok és egyéb adatelemek közti reláció, adatkapcsolat adott, erre épül maga az alkalmazás. No de ezt hogy jelenítsük meg egy gráfban, hogy  felhasználó is kedvet kapjon és használja?</p>
<p>Csapatunk 3 napon keresztül tervezett, brainstormingolt. Számos ötlet jelent meg a fejekben és a nagy prezentációs falon, ezen ötletek kb. 50% bele is került a megvalósult rendszerbe. Az elvárások tisztázása után kezdődött a fejlesztés. Programnyelv C#, ennek GDI és GDI+ lehetőségei kiváló kiaknázásra való területet jelentettek számunkra.</p>
<p><strong>Lépések:</strong></p>
<ul>
<li>Építsünk egy saját controlt.</li>
<li>Bármilyen megjelenni kívánó objektum feleljen megy egy <code>IDiagramDrawItem </code>interfésznek, amely egy metódust definiál <code>void Draw()</code> és információt szolgáltat arról, hogy melyik rétegben jelenik meg a kirajzolandó adatelem <code>int ZOrder { get; }</code>.</li>
<li>Rajzolás megvalósítása
<ul>
<li><code>override Paint()</code></li>
<li><code>void ClearAndDrawBackground()</code></li>
<li><code>void SortByZOrder()</code></li>
<li><code>foreach(... item.Draw()...)</code></li>
</ul>
</li>
</ul>
<p>Már a tervezési fázisban is láthatóvá vált, hogy lesznek optimalizálási kérdések, problémák, amelyek a témakör izgalmasabb részét jelentik.</p>
<p><strong>Repository, hogy ne szaggasson a kép.</strong> Egyedileg rajzoló eljárások rákfenéje a sok GDI objektum, amely memóriában és időben is költséges. A memóriabeli költségeket, mivel IDisposasble, meg lehet oldani, de sokáig tart minden OnPaintben Font-os, Pen-t és Brush-t létrehozni. Erre született megoldásként, hogy a diagram ezeket publikálja, tárolja, elérhetővé teszi eg példányban, egy alkalommal való létrehozással a rajzolni képes objektumok felé. Performancia mérést végeztünk, egy átlagos diagram 740 alkalommal tud kirajzolódni egy másodperc alatt. Nem rossz, megfelel.</p>
<p><strong>GraphicsPath, hogy lekerekített sarkú legyen a doboz.</strong> A C# GDI+ lehetőséget kínál arra, hogy vonalak és görbék segítségével egy &#8220;utat&#8221; hozzunk létre, amely felhasználható rajzolásra és kitöltésre egyaránt. Megvalósítottuk. Mivel ez is költséges, minden objektum a mérete alapján (amely nem állítható megjelenítés közben) első felhasználáskor (late-init) létrehozza a GraphicsPath objektumot.</p>
<p><strong>LinearGradientBrush, hogy átmenetes legyen a dobozok háttere.</strong> A legnagyobb kihívás a színátmenetes doboz volt, amely egy pontoktól függő GradientBrush lett. Ennek szintén elég egy példányban léteznie, de a doboz pozíciójának függvényében kell felparaméterezni. A (rendszer által) mozgatható dobozok pedig ezen tulajdonságukat gyakran változtatják, de erre is született megoldás: late-init és re-init-by-move.</p>
<p><em>És ekkor még nem ért véget a gondolkodás, a dobozok esztétikus elhelyezésének algoritmusa felér egy komolyabb diplomamunka témakörével, erről egy következő cikkben.</em></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/diagram-engine-miert-c/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Windows 7 tálca újdonságai &#8211; fejlesztői szemmel</title>
		<link>http://lab.symboltech.hu/2009/07/windows-7-talca-ujdonsagai-fejlesztoi-szemmel/</link>
		<comments>http://lab.symboltech.hu/2009/07/windows-7-talca-ujdonsagai-fejlesztoi-szemmel/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 12:43:02 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Fejlesztői hírek]]></category>
		<category><![CDATA[Nagyvilág eseményei]]></category>
		<category><![CDATA[c#]]></category>
		<category><![CDATA[folyamatjelző]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[projekt]]></category>
		<category><![CDATA[tálca]]></category>
		<category><![CDATA[windows7]]></category>
		<category><![CDATA[WindowsApiCodecPack]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=200</guid>
		<description><![CDATA[Napvilágot látott (le is tölthető, meg is vásárolható lassan) a Microsoft új operációs rendszere, amely felhasználói szemmel újdonság, fejlesztői szemmel kihívás.]]></description>
			<content:encoded><![CDATA[<p>Napvilágot látott (le is tölthető, meg is vásárolható lassan) a Microsoft új operációs rendszere, amely felhasználói szemmel újdonság, fejlesztői szemmel kihívás.</p>
<p>Az alábbi <a href="http://windows.microsoft.com/en-US/windows7/products/features" target="_blank">linken</a> pár információval szolgálnak arról, mik is ezek az újítások. Én csak a tálca újdonságait emelném ki. Ezidáig a felhasználót a jobb alsó sarokban lévő úgynevezett értesítési területen lehetett informáli dolgokról. Milyen folyamatok futnak, mennyi ideig tart még a DVD megírása, a fájl letöltése.</p>
<p>Ezt most egy kicsit megbolondították és elérhetővé tették folyamatjelzők és ikonok megjelenítését a tálcán, ahol eddig a program főablakának címe szerepelt és jobb esetben az alkalmazás ikonja (számos fejlesztő felejt el ikont adni). A lehetőségek között szerepel:</p>
<ul>
<li>Véges folyamatjelző</li>
<li>Végtelen folyamatjelző (nem kiszámítható befejezési idővel)</li>
<li>Hibajelző (piros)</li>
</ul>
<p><img class="aligncenter size-full wp-image-206" title="taskbarwithprogressandoverlays" src="http://lab.symboltech.hu/wp-content/uploads/2009/07/taskbarwithprogressandoverlays.jpg" alt="taskbarwithprogressandoverlays" width="600" height="323" /></p>
<h3>És ehhez elég lesz a .Net framework 4.0?</h3>
<p>Elég, sőt 3.5-tel is működni fog, le kell hozzá tölteni a <a href="http://code.msdn.microsoft.com/WindowsAPICodePack" target="_blank">WindowsApiCodecPack</a>-et (4MB, súgóval együtt 19MB), amely forrásfájlokat szolgáltat számunkra, hogy a Windows7 fenti szolgáltatásait elérjük. <em>DirectX is kell hozzá a leírás szerint, de ez valószinüleg akkor szükséges, ha a CodecPack DirectX-es szolgáltatásait is szeretnénk használni.</em></p>
<p>Lehetőségünk lesz elérni a <code>ITaskBarList3</code> interfész <code>SetOverlayIcon</code>, <code>SetProgressState</code> és <code>SetProgressValue</code> metódusait, amivel lehetőségünk van a felhasználóinkat informálni egy hosszabb programfolyamat állapotáról.</p>
<p>Referenciaként a Core és Shell szerelvényeket kell a projekthez hozzáadni, ezen névterekben pedig megtalálhatóak a szükséges osztályok:</p>
<ul>
<li><code>Microsoft.WindowsAPICodePack.Shell.<strong>Taskbar</strong></code></li>
<li><code><code>Microsoft.WindowsAPICodePack.Shell.Taskbar.<strong>ProgressBar</strong></code></code></li>
<li><code><code><code>Microsoft.WindowsAPICodePack.Shell.Taskbar.<strong>OverlayIcon</strong></code></code></code></li>
</ul>
<p>Ezen kívül a <code>ProgressBarExt </code>és <code>OverlayIconExt </code>osztályok segítségével a Windows XP óta, a sok ablak megjelenítésekor összecsoportosuló programablakok mindegyike külön folyamatjelzővel látható el.</p>
<p>Tesztelés folyamatban&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/windows-7-talca-ujdonsagai-fejlesztoi-szemmel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Amikor a számítógép maga az ember</title>
		<link>http://lab.symboltech.hu/2009/07/amikor-a-szamitogep-maga-az-ember/</link>
		<comments>http://lab.symboltech.hu/2009/07/amikor-a-szamitogep-maga-az-ember/#comments</comments>
		<pubDate>Wed, 01 Jul 2009 12:15:36 +0000</pubDate>
		<dc:creator>developerteam</dc:creator>
				<category><![CDATA[Kikapcsolódás]]></category>
		<category><![CDATA[human]]></category>
		<category><![CDATA[interface]]></category>
		<category><![CDATA[keyboard]]></category>

		<guid isPermaLink="false">http://lab.symboltech.hu/?p=191</guid>
		<description><![CDATA[Az alábbi kis video szösszenet elgondolkodtató. Miként tudja elvégezni számítógépes feladatainkat egy ember? Mekkora technológiai ugrás volt 1946-ban a Neumann elvű számítógép? Mi lenne ha nem lenne áram?]]></description>
			<content:encoded><![CDATA[<p>Az alábbi kis video szösszenet elgondolkodtató. Miként tudja elvégezni számítógépes feladatainkat egy ember? Mekkora technológiai ugrás volt 1946-ban a Neumann elvű számítógép? Mi lenne ha nem lenne áram?</p>
<p><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="400" height="300" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="src" value="http://vimeo.com/moogaloop.swf?clip_id=4697849&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed type="application/x-shockwave-flash" width="400" height="300" src="http://vimeo.com/moogaloop.swf?clip_id=4697849&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" allowfullscreen="true" allowscriptaccess="always"></embed></object></p>
]]></content:encoded>
			<wfw:commentRss>http://lab.symboltech.hu/2009/07/amikor-a-szamitogep-maga-az-ember/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

