{"id":3563,"date":"2019-03-25T17:44:53","date_gmt":"2019-03-25T20:44:53","guid":{"rendered":"http:\/\/xexeu.elipse.com.br\/pt\/developing-objectoriented-applications-in-elipse-e3-part-ii\/"},"modified":"2019-06-10T13:59:37","modified_gmt":"2019-06-10T16:59:37","slug":"developing-objectoriented-applications-in-elipse-e3-part-ii","status":"publish","type":"post","link":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/","title":{"rendered":"Developing object-oriented applications in Elipse E3 &#8211; Part II."},"content":{"rendered":"<div align=\"justify\">\n<p><u><b>1) Introduction<\/b><\/u><br \/>\n<a href=\"http:\/\/kb.elipse.com.br\/pt-br\/questions\/5258\/Developing+object-oriented+applications+in+Elipse+E3+-+Part+I.\" target=\"_blank\" rel=\"noopener noreferrer\"><br \/>\n<b>Part I<\/b><\/a><b> <\/b>of this article introduced the proper way of creating links for animating screen controls. Part II will discuss the best strategy for developing an application for an imaginary industrial plant.<\/p>\n<p><u><b>2) Plant description<\/b><\/u><\/p>\n<p>The plant in this example comprises two tanks, each featuring a valve for liquid input and a pump for output. To fill the tank, click the valve, and to empty it, click the pump. When opened, each valve turns green and displays the legend <i><b>&#8220;Open&#8221;<\/b><\/i>. Otherwise, it turns red and displays <i><b>&#8220;Closed&#8221;<\/b><\/i>. Pumps, on the other hand, turn green and display the legend <b><i>&#8220;On&#8221;<\/i><\/b> when opened, or turn red and display <i><b>&#8220;Off&#8221;<\/b><\/i> otherwise. The figure below summarizes the plant.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura1.PNG\" alt=\"\" width=\"500\" height=\"384\" align=\"Baseline\" border=\"0\" hspace=\"0\" vspace=\"0\" \/><br \/>\n<b>Figure 1:<\/b> Industrial plant with two tanks<br \/>\n<\/span><\/div>\n<p><u><b>3) Developing the objects library<\/b><\/u><\/p>\n<p>When developing an application in Elipse E3, the first step is to establish which functionalities in the process will be repeated and also which can be designed as E3 objects.<\/p>\n<p>In this application, it is clear which screen objects will be repeated: tanks, pumps, valves, and tubes. After spotting these objects, you will need to set up their functionalities, properties, and design.<\/p>\n<p>The logic for tank operation must also be executed in the server. This logic is set up at an XObject called <b>TankLogic<\/b>.<\/p>\n<p>Let&#8217;s see how each object is developed individually.<\/p>\n<p><b>Creating <i>TankLogic <\/i>XObject<\/b><\/p>\n<p>Initially, we will create a project named <b>Plant <\/b>with a library called <b>PlantLib<\/b>. This library contains the XObjects&#8217; and XControls&#8217; settings. The <b>Plant <\/b>project contains the objects executed in the server and the Viewer screens.<\/p>\n<p>The <b>TankLogic <\/b>object (Figure 2) displays three properties for controlling a tank&#8217;s process: <i>ValveOpened<\/i>, which informs whether the tank&#8217;s input vale is open or closed; <i>Meter<\/i>, which informs the tank&#8217;s liquid level; and <i>PumpActivated<\/i>, which reports whether the tank&#8217;s output pump is on or off.<\/p>\n<p><b>TIP<\/b>: fill out the <b>Help Text<\/b> column for each property added to an ElipseX (Figure 2); this text will be displayed in the AppBrowser, and will further help with the application&#8217;s maintenance.<\/p>\n<p>For this article&#8217;s purposes, we will not discuss the details of implementing this object; all you need to know is that when <i>ValveOpened <\/i>property is True, the tank will start filling up until <i>Meter <\/i>property reaches a 100-unit limit. When the output pump is turned on via <i>PumpActivated <\/i>property, the tank is emptied. When the pump is on and the valve is open, <i>Meter <\/i>property&#8217;s value remains constant.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura2.PNG\" alt=\"\" width=\"500\" height=\"101\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 2:<\/b> Setting up <b>TankLogic <\/b>object<br \/>\n<\/span><\/div>\n<p><b>Creating <i>Tank <\/i>XControl <\/b><\/p>\n<p><b>Tank <\/b>object comprises a drawing of the reservoir and two more displays for the amount of liquid, one with an analog vertical bar and the other with the value in the tank in tons (Figure 3).<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura3.PNG\" alt=\"\" width=\"264\" height=\"327\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 3: Tank<\/b> object<br \/>\n<\/span><\/div>\n<p>To demonstrate the flexibility of ElipseX libraries, we will split <b>Tank <\/b>object in two parts: one containing the reservoir, and the other containing the displays. With this, you will be able to see how an ElipseX object can be built from other objects previously created.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura4.PNG\" alt=\"\" width=\"500\" height=\"74\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 4: <\/b>Setting up <b>Gauge <\/b>object&#8217;s <i>Value <\/i>property<br \/>\n<\/span><\/div>\n<p><b>Gauge <\/b>object contains the displays and has a property called <i>Value <\/i>(see Figure 4), which will be used to animate the object&#8217;s internal controls.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura5.PNG\" alt=\"\" width=\"500\" height=\"418\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 5: Gauge <\/b>object&#8217;s links<br \/>\n<\/span><\/div>\n<p>Notice that both objects that make up <b>Gauge <\/b>are linked to its <i>Value <\/i>property. Therefore, whenever <b>Gauge<\/b>&#8216;s <i>Value <\/i>property is edited, this value will automatically be sent to both objects linked to this property. Next, you can see <b>Tank <\/b>object, which comprises the drawing of the reservoir and the <b>Gauge <\/b>object (Figure 6).<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura6.PNG\" alt=\"\" width=\"307\" height=\"363\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 6: Tank<\/b> XControl&#8217;s settings<br \/>\n<\/span><\/div>\n<p>Then, you will need to think of this object&#8217;s properties. There are two possibilities: in the first one, you can add an <i>Integer <\/i>property and link it to <b>Gauge1<\/b>&#8216;s <i>Value <\/i>property. In the second one, you will create a <i>TankLogic <\/i>property and link <b>Gauge1<\/b>&#8216;s <i>Value <\/i>property to <b>TankLogic<\/b>&#8216;s <i>Meter <\/i>property. This example shows you how to perform the second option (Figure 7).<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><b><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura7.PNG\" alt=\"\" width=\"499\" height=\"88\" align=\"Baseline\" border=\"0\" \/><\/b><br \/>\n<b>Figure 7: Tank <\/b>object&#8217;s <i>TankLogic <\/i>property<br \/>\n<\/span><\/div>\n<p>Now, all you have to do is link <b>Gauge1<\/b>&#8216;s <i>Value <\/i>property to <b>TankLogic<\/b>&#8216;s <i>Meter <\/i>property of <b>Tank <\/b>object (Figure 8). This is how <b>Gauge1 <\/b>object will access the properties of the external object linked to <i>TankLogic<\/i> property, which is a TankLogic-type object.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura8.PNG\" alt=\"\" width=\"453\" height=\"561\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 8: Tank<\/b> object&#8217;s links<br \/>\n<\/span><\/div>\n<p><b><br \/>\nCreating <i>Valve <\/i>XControl <\/b><\/p>\n<p><b>Valve <\/b>object presents the drawing of a valve that turns red when closed and green when open. By clicking the object, it inverts the current status of the associated <b>TankLogic <\/b>object&#8217;s <i>ValveOpened <\/i>property, thus causing the valve to close or open.<\/p>\n<p>The first step for building this object is creating a TankLogic-type property called <i>TankLogic<\/i>, thus allowing this object to be linked to a server&#8217;s <b>TankLogic <\/b>object.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura9.PNG\" alt=\"\" width=\"496\" height=\"89\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 9: Valve<\/b> objects <i>TankLogic <\/i>property<br \/>\n<\/span><\/div>\n<p>Next, we see <b>Valve <\/b>object and its links (Figure 10), where you will be able to see that both <b>Text1 <\/b>and <b>Figure1 <\/b>objects are linked to <b>Valve<\/b>&#8216;s <i>ValveOpened <\/i>property.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura10.PNG\" alt=\"\" width=\"500\" height=\"293\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 10: Valve <\/b>object&#8217;s links<br \/>\n<\/span><\/div>\n<p>Now you will need a script that inverts <b>TankLogic<\/b>&#8216;s <i>ValveOpened <\/i>property when clicking the valve. This can be achieved with a script at <b>Figure1<\/b>&#8216;s <i>Click() <\/i>event (as seen below).<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura11.PNG\" alt=\"\" width=\"500\" height=\"155\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 11: <\/b>Script at <b>Figure1<\/b>&#8216;s <i>Click() <\/i>event<br \/>\n<\/span><\/div>\n<p><b><br \/>\nCreating <i>Pump <\/i>XControl <\/b><\/p>\n<p><b>Pump <\/b>object is very similar to <b>Valve <\/b>object, but there are two main differences: its drawing is a pump, and it inverts <b>TankLogic<\/b>&#8216;s <i>PumpActivated <\/i>property (Figure 12).<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura12.PNG\" alt=\"\" width=\"500\" height=\"302\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 12: Pump<\/b> object&#8217;s links<br \/>\n<\/span><\/div>\n<p><b><u>4) Building the application <\/u><\/b><\/p>\n<p>Once your library is ready, you will need to insert the objects created in a project. To do so, just create the objects at <b>Plant <\/b>project as needed. Since there are two tanks in the application, you will need two tank process simulators, therefore you will need to create two <b>TankLogic <\/b>objects in the server&#8217;s <b>Data <\/b>folder (Figure 13).<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura13.PNG\" alt=\"\" width=\"222\" height=\"56\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 13: TankLogic<\/b> objects instanced in the server<br \/>\n<\/span><\/div>\n<p>Both objects, <b>TankLogic1 <\/b>and <b>TankLogic2<\/b>, are then linked to the screen objects, which are the user&#8217;s interface for opening\/closing the valve and turning on\/off the pump.<\/p>\n<p>You will add the screen objects created in the library (such as tanks, pumps, valves, and tubes) to the <b>InitialScreen <\/b>(Figure 14). Each object will be linked to its respective <b>TankLogic<\/b>.<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura14.PNG\" alt=\"\" width=\"344\" height=\"329\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 14: <\/b>Inserting <b>Tank <\/b>object to the screen<br \/>\n<\/span><\/div>\n<p>At the last stage of developing this application, you will link the screen objects to its respective <b>TankLogic <\/b>objects (Figure 15).<\/p>\n<div align=\"center\"><span style=\"font-size: xx-small;\"><img loading=\"lazy\" title=\"\" src=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura15.PNG\" alt=\"\" width=\"500\" height=\"260\" align=\"Baseline\" border=\"0\" \/><br \/>\n<b>Figure 15: <\/b>Linking <b>Tank1 <\/b>object to <i>Data.TankLogic1<\/i><br \/>\n<\/span><\/div>\n<p>As you can see, it is easy to create and maintain applications using library resources in E3. Once the library is created, all you need is to create and link the objects, which greatly facilitates the work.<\/p>\n<p>Notice that the library contains only definitions and not the objects per se, so you will need to insert them in the project and set up their properties so that they will work properly.<\/p>\n<p><u><b>5) Final Remarks<\/b><\/u><\/p>\n<p>With this application, you can see how easy and quick it is to create functional objects when using E3 libraries. With them, you don&#8217;t have to create a whole application from scratch, because you can reuse objects that were created for other applications.<\/p>\n<\/div>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1) Introduction Part I of this article introduced the proper way of creating links for animating screen controls. Part II will discuss the best strategy for developing an application for&hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_exactmetrics_skip_tracking":false,"_exactmetrics_sitenote_active":false,"_exactmetrics_sitenote_note":"","_exactmetrics_sitenote_category":0},"categories":[769],"tags":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v19.8 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Developing object-oriented applications in Elipse E3 - Part II.[:] - Elipse Knowledgebase<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Developing object-oriented applications in Elipse E3 - Part II.\" \/>\n<meta property=\"og:description\" content=\"1) Introduction Part I of this article introduced the proper way of creating links for animating screen controls. Part II will discuss the best strategy for developing an application for&hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/\" \/>\n<meta property=\"og:site_name\" content=\"Elipse Knowledgebase\" \/>\n<meta property=\"article:publisher\" content=\"http:\/\/www.facebook.com\/elipsesoftware\" \/>\n<meta property=\"article:published_time\" content=\"2019-03-25T20:44:53+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2019-06-10T16:59:37+00:00\" \/>\n<meta property=\"og:image\" content=\"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura1.PNG\" \/>\n<meta name=\"author\" content=\"Elipse Software\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Elipse Software\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/\"},\"author\":{\"name\":\"Elipse Software\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\"},\"headline\":\"Developing object-oriented applications in Elipse E3 &#8211; Part II.\",\"datePublished\":\"2019-03-25T20:44:53+00:00\",\"dateModified\":\"2019-06-10T16:59:37+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/\"},\"wordCount\":1157,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"articleSection\":[\"XControl \/ XObject \/ Lib\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/\",\"url\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/\",\"name\":\"[:pt]Developing object-oriented applications in Elipse E3 - Part II.[:] - Elipse Knowledgebase\",\"isPartOf\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#website\"},\"datePublished\":\"2019-03-25T20:44:53+00:00\",\"dateModified\":\"2019-06-10T16:59:37+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"In\u00edcio\",\"item\":\"https:\/\/kb.elipse.com.br\/en\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Developing object-oriented applications in Elipse E3 &#8211; Part II.\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kb.elipse.com.br\/#website\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"name\":\"Elipse Knowledgebase\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kb.elipse.com.br\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kb.elipse.com.br\/#organization\",\"name\":\"Elipse Software\",\"url\":\"https:\/\/kb.elipse.com.br\/\",\"sameAs\":[\"http:\/\/www.facebook.com\/elipsesoftware\"],\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"contentUrl\":\"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png\",\"width\":161,\"height\":58,\"caption\":\"Elipse Software\"},\"image\":{\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87\",\"name\":\"Elipse Software\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g\",\"caption\":\"Elipse Software\"},\"url\":\"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Developing object-oriented applications in Elipse E3 - Part II.[:] - Elipse Knowledgebase","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/","og_locale":"en_US","og_type":"article","og_title":"[:pt]Developing object-oriented applications in Elipse E3 - Part II.[:] - Elipse Knowledgebase","og_description":"1) Introduction Part I of this article introduced the proper way of creating links for animating screen controls. Part II will discuss the best strategy for developing an application for&hellip;","og_url":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/","og_site_name":"Elipse Knowledgebase","article_publisher":"http:\/\/www.facebook.com\/elipsesoftware","article_published_time":"2019-03-25T20:44:53+00:00","article_modified_time":"2019-06-10T16:59:37+00:00","og_image":[{"url":"http:\/\/kb.elipse.com.br\/pt-br\/images\/ID5259\/Figura1.PNG"}],"author":"Elipse Software","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Elipse Software","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#article","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/"},"author":{"name":"Elipse Software","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87"},"headline":"Developing object-oriented applications in Elipse E3 &#8211; Part II.","datePublished":"2019-03-25T20:44:53+00:00","dateModified":"2019-06-10T16:59:37+00:00","mainEntityOfPage":{"@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/"},"wordCount":1157,"commentCount":0,"publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"articleSection":["XControl \/ XObject \/ Lib"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/","url":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/","name":"[:pt]Developing object-oriented applications in Elipse E3 - Part II.[:] - Elipse Knowledgebase","isPartOf":{"@id":"https:\/\/kb.elipse.com.br\/#website"},"datePublished":"2019-03-25T20:44:53+00:00","dateModified":"2019-06-10T16:59:37+00:00","breadcrumb":{"@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/kb.elipse.com.br\/en\/developing-objectoriented-applications-in-elipse-e3-part-ii\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"In\u00edcio","item":"https:\/\/kb.elipse.com.br\/en\/"},{"@type":"ListItem","position":2,"name":"Developing object-oriented applications in Elipse E3 &#8211; Part II."}]},{"@type":"WebSite","@id":"https:\/\/kb.elipse.com.br\/#website","url":"https:\/\/kb.elipse.com.br\/","name":"Elipse Knowledgebase","description":"","publisher":{"@id":"https:\/\/kb.elipse.com.br\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kb.elipse.com.br\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/kb.elipse.com.br\/#organization","name":"Elipse Software","url":"https:\/\/kb.elipse.com.br\/","sameAs":["http:\/\/www.facebook.com\/elipsesoftware"],"logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/","url":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","contentUrl":"https:\/\/kb.elipse.com.br\/wp-content\/uploads\/2019\/05\/schererelipse-com-br\/logoElipse.png","width":161,"height":58,"caption":"Elipse Software"},"image":{"@id":"https:\/\/kb.elipse.com.br\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/def69ea453ea60b250497b89225a9f87","name":"Elipse Software","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/kb.elipse.com.br\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/ff1f7ec38f4687b06f6851d97b3cd2d0?s=96&d=mm&r=g","caption":"Elipse Software"},"url":"https:\/\/kb.elipse.com.br\/en\/author\/webmasterelipse-com-br\/"}]}},"_links":{"self":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/3563"}],"collection":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/comments?post=3563"}],"version-history":[{"count":1,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/3563\/revisions"}],"predecessor-version":[{"id":7115,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/posts\/3563\/revisions\/7115"}],"wp:attachment":[{"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/media?parent=3563"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/categories?post=3563"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kb.elipse.com.br\/en\/wp-json\/wp\/v2\/tags?post=3563"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}