Cleaning of display objects

I have a JDeveloper 10 g request (10.1.3) with many display objects (about 270). Is there a way automated (or semi-automated), and closed down when they are most needed?

I realize the notion of being 'useless' is rather slippery. I have functions that clean than those used on a particular page, but by ensuring that the function is called can be difficult, especially when the bread crumbs navigation and others may work around scheduled execution. I was planning to make a list I'll and cleaning of the members of the list when the user returns to the home page of the application. It seems inelegant and hard to maintain, but possible.

Are there other strategies to consider?

Kind regards

David C

Published by: David C on September 24, 2008 16:21

David,

really, let the framework handle this for you. Iterators are released by releasing the link for the page container. If you have points that he doesn't that then file a bug with the support of the evidence. It is not sensible to code in your application, which must be handled by the framework. Also note that VO at the time is used, unless they are all on one page

Frank

Tags: Java

Similar Questions

  • is it possible to apply the sort on the columns added to a dynamic display object?

    Hi all


    We use JDeveloper Studio Edition Version 12.1.3.0.0 and deployed on GlassFish Server Open Source Edition 3.1.2.2 (build 5) and connect to the SQLServer database.


    We have created a dynamic display object in the AM Impl, all objects in view columns are added dynamically.


    All lines are displayed correctly, but when sorting columns data disappear. (point of view are being refreshed, of course).


    is it possible to apply the sort on the columns added to a dynamic display object?

    This is how we show data in the JSF page:


    < af:table lines = ' #{bindings. " DynamicVO.rangeSize}' fetchSize = "#{bindings." DynamicVO.rangeSize}.

    emptyText = "#{bindings." DynamicVO.viewable? "{'No data to display.': 'Access Denied.'}".

    var = 'row' rowBandingInterval = '0' value = ' #{bindings. " DynamicVO.collectionModel}.

    selectedRowKeys = ' #{bindings. " DynamicVO.collectionModel.selectedRow}.

    selectionListener = "#{bindings." DynamicVO.collectionModel.makeCurrent}.

    rowSelection = "single" id = "t1" >

    < af:forEach elements = "#{bindings." Var DynamicVOIterator.attributeDefs}' = 'def' varStatus = 'vs' >

    "< af:column headerText =" #{def.propertyMap.label} "sortable ="true"sortProperty =" #{def.name} ".

    ID = "clmn$ {vs.index}" >

    < af:outputText value = "#{row [def.name]}" id = "ot1" / > "

    < / af:column >

    < / af:forEach >

    < / af:table >




    Thanks guys, I created a custom class that contains a model that can be sorted in a pod of support and I have to the adf work table it and it is very good about sorting.

    JSF:

    Rows = "#{pageFlowScope.crudBean.dynamicTable.collectionModel.RowCount} '"

    contentDelivery = 'immediate' var = 'row' rendered = 'true '.

    Binding = "#{backingBeanScope.crudBackingBean.tasksTable} '"

    selectionListener = "#{backingBeanScope.crudBackingBean.customListener} '"

    "rowSelection ="single"id ="t1"partialTriggers =": pt_gr2 "columnStretching =" column: clmn0 ">

    inlineStyle = "width: 100px;"  ID = "clmn$ {vs.index}" > "

  • PL/SQL functions as LOV to use in another display object

    Hello

    We had a custom search to extract data from a display object and the data displayed as a Table of ADF. Now, there are few requests for searches on this report. Go see criteria and Panel request if we allow saved search. But the fields used in the research are going through a lot of logic and thus the PL/SQL functions are implemented. We used to call these functions and lists separated by commas and then divided the list into individual elements and put in the component "select options".

    The value (String) returned by the pl/sql function is something like - APAC, EMEA, NORTH AMERICA, FDA

    I am creating a LOV based on SQL-query "Select getRegions() from dual;

    Now, I want the list separated by commas to divide so that I could use this LOV in an another view and try the display criteria and saved searches.

    I tried to assign as LOV just to check and the criteria drop-down view for region displays same value as single element - "APAC, EMEA, NORTH AMERICA, LAD."

    I want it to be 4 separate - elements

    APAC

    EMEA

    NORTH AMERICA

    DVL

    Is there anyway to achieve this?

    Or better is at - it another way to do this (maybe I'm wrong)

    Thank you.

    JDev: 11.1.2.4

    Instead of a programmatic VO of PL/SQL, I found sometimes easier to write PL/SQL functions that return a table - need to CREATE a TYPE for the data items to be returned and a TYPE of TABLE IMBRIQUE tabular form of the first kind.  The function returns the type of table, and can even be a PIPElined table function.  Then I create a VO with the following text:

    SELECT * from TABLE (my_function_returning_table)

    The function can even take parameters, which you fill with variable BIND your VO.

  • Linking with many display objects, then 2

    Hello

    Is it possible to create a link with several display objects then 2. There are two objects in view I want to put a link with a common master view object. is this possible? If Yes please tell me how to do it.

    -Thank you

    Hello, Uthman.

    As suggested by Ibtisam Zafar and 1000723 user, you can do with two links associated with the same master VO.

    I think that what's missing to make adds master and two details in the page (steps 5 and 6).

    For example, if we have a MasterVO as a master, the FirstDetailVO and the SecondDetailVO as a detail:

    1. create a link to display based on MasterVO and associated with FirstDetailVO via the idMaster field, named FirstDetailMasterVL.

    2. create a link to display based on MasterVO and associated with SecondDetailVO via the idMaster field, named SecondDetailMasterVL.

    3. in "Module-> Application data model", adds MasterVO (MasterVO1). Then, add FirstDetailMasterVL (FirstDetailVO1) and SecondDetailMasterVL inside MasterVO1.

    4. in the control of data, you can see MasterVO and inside, you will see FirstDetailVO1 and SecondDetailVO1.

    5. in the ViewController project, you can insert in the page "FirstDetailVO1" as a master-detail.

    6. to insert SecondDetailVO detail, you can add it as a table or a form. You insert SecondDetailVO as a master detail.

    You can see how the two details are updated as you navigate through the lines of MasterVO1.

    RFH.

  • XML editor integration with OFA for several display objects

    Dear all,

    I have a problem in the integration of XML with the OAF Page.

    I'm generating the xml using the XMLNode class tags. And I was succeed for object a point of view. But now I am faced with the question with two display objects (which is not dependent on each other).

    Are there any entries you its urgent.

    Thanks in advance,

    Kind regards

    Anil Kumar

    Dear all,

    I found the solution for this... Please find the Code.

    The controller code:

    If (pageContext.getParameter ("generateRpt")! = null)

    {

    String po_number = (String) pageContext.getTransactionValue ("PO_NUM");

    System.out.println ("The PO number s i-" + po_number);

    Serializable params [] = {fromDate, to this day, docNo, pendingType, reqNo, po_number}; //

    Class paramType [] =

    {String.class, String.class, String.class, String.class,

    String.Class, String.Class}; //

    DataObject sessionDictionary = pageContext.getNamedDataObject("_SessionParameters");

    HttpServletResponse response = (HttpServletResponse) sessionDictionary.selectValue (null,

    "HttpServletResponse");

    Try

    {

    System.out.println ("Inisde generate button step 2");

    ServletOutputStream os = response.getOutputStream ();

    If (ReportFormat1! = null &!) ReportFormat1.equals(""))

    {

    If (ReportFormat1.equals ('PDF'))

    {

    System.out.println ("Inisde generate button step 3");

    contentDisposition = "attachment; filename = quote Report.pdf";

    response.setHeader ("Content-Disposition", contentDisposition);

    response.setContentType("application/pdf");

    BT = TemplateHelper.OUTPUT_TYPE_PDF;

    }

    If (ReportFormat1.equals ("XLS"))

    {

    System.out.println ("Inisde generate button step 4");

    contentDisposition = "attachment; filename = quote Report.xls";

    response.setHeader ("Content-Disposition", contentDisposition);

    response.setContentType("application/vnd.ms-excel");

    BT = TemplateHelper.OUTPUT_TYPE_EXCEL;

    }

    }

    ByteArrayOutputStream OutputStream = new ByteArrayOutputStream();

    Byte = bufutf''. getBytes();

    outputStream.write (bufutf);

    XMLNode xmlNode [] = new XMLNode [10];

    xmlNode = (XMLNode []) am.invokeMethod ("executeReportPO", params, paramType);

    System.out.println ("IN CO");

    xmlNode [1] .print (outputStream);

    xmlNode [2] .print (outputStream);

    Byte = bufutf1''. getBytes();

    outputStream.write (bufutf1);

    System.out.println ("Testying-" + outputStream.toString ());

    ByteArrayInputStream InputStream = new ByteArrayInputStream (outputStream.toByteArray ());

    ByteArrayOutputStream fileData = new ByteArrayOutputStream();

    TemplateHelper.processTemplate (((OADBTransactionImpl) pageContext.getApplicationModule (webBean) .getOADBTransaction ()) .getAppsContext (),)

    APP_NAME, TEMPLATE_CODE,

    ((OADBTransactionImpl) pageContext.getApplicationModule (webBean) .getOADBTransaction ()) .getUserLocale () .getLanguage ();

    ((OADBTransactionImpl) pageContext.getApplicationModule (webBean) .getOADBTransaction ()) .getUserLocale () .getCountry ();

    inputStream, bt, null, fileData);

    System.out.println ("inside the template code");

    Byte [] b = fileData.toByteArray ();

    response.setContentLength (b.length);

    OS. Write (b, 0, b.length);

    OS. Flush();

    OS. Close();

    System.out.println ("inside the model code1");

    }

    catch (System.Exception e)

    {

    throw new OAException (e.getMessage ());

    }

    }

    GOT the Code:

    public XMLNode [] executeReportPO (String fromDate, String to date,

    String docNo, String pendingType,

    String reqNo, String ponum)

    {

    System.out.println ("Generate Inisde AM step 1 button" + ponum);

    ByteArrayOutputStream OutputStream = new ByteArrayOutputStream();

    ItemPendingPoVOImpl vo = getItemPendingPoVO1();

    Vo1 PoDetailVOImpl = getPoDetailVO1();

    Try

    {

    vo.setWhereClauseParams (null);

    vo.setWhereClauseParam (0, docNo);

    vo.setWhereClauseParam (1, reqNo);

    vo.setWhereClauseParam (2, fromDate);

    vo.setWhereClauseParam (3 so far);

    vo.setWhereClauseParam (4, pendingType);

    vo.executeQuery ();

    System.out.println ("Request"- + vo.getQuery ());

    String whereconditionpo = "PONO ='" + ponum + "'";

    VO1.setWhereClause (whereconditionpo);

    VO1. ExecuteQuery();

    System.out.println ("query 2--->" + vo1.getQuery ());

    System.out.println ("Inisde generate button step 2 in AM");

    } catch (System.Exception e)

    {

    throw new OAException (e.getMessage ());

    }

    s int = vo.getRowCount ();

    System.out.println ("number of rows affected" + s);

    XMLNode NodeList = new XMLNode [] [10];

    Try

    {

    NodeList [1] = ((XMLNode) vo.writeXML (4, XMLInterface.XML_OPT_ALL_ROWS));

    ((XMLNode) vo.writeXML (4,)

    XMLInterface.XML_OPT_ALL_ROWS)) .print (outputStream);

    System.out.println (OutputStream.ToString ());

    System.out.println ("Inisde generate button step 1");

    NodeList [2] = ((XMLNode) vo1.writeXML (4, XMLInterface.XML_OPT_ALL_ROWS));

    ((XMLNode) vo1.writeXML (4,)

    XMLInterface.XML_OPT_ALL_ROWS)) .print (outputStream);

    System.out.println (OutputStream.ToString ());

    return NodeList;

    } catch (System.Exception e)

    {

    throw new OAException (e.getMessage ());

    }

    }

    Kind regards

    Anil Kumar Pasupala

  • Auto refreshing display objects when the new line in the table inserted on another computer

    Greetings,

    I'm using an application of ADF JDeveloper 11.1.2.4.0 its been used by 2 separate computers.

    It's the same application, but I shared with security ADF for the person (Secretary) will see the half view of the application

    and the other person (doctor), the other half seen. Basically, I put adf username expression (rendering) for each display mode

    the specific menu, buttons, tabs, etc.

    My problem is, say the Secretary, creates a doctor's appointment, rather than re - run display objects

    every X minutes on the advice of the doctor, is there a way to notify the application that the new data are inserted into the database and must be re/refresh-execute?

    I have about 100 objects from view and I don't want to discount/re-execute all objects from view because I don't know on what table a new record its been inserted.

    Appointment is just one example, there are many paintings that both views are connected to.

    Hello

    Here is the solution to your needs: http://matthiaswessendorf.wordpress.com/2010/01/22/flexible-active-data-service/.

    Instead of the pop-up window in the sample you would be re - run the table of appointment. Now all you need is a mechanism that informs the change, which may be a trigger in the database or application that updates the new appointment

    Frank

  • sessionScope in Bind variable access to a display object

    Hi all

    I use jdeveloper 11.1.2.3.0

    I read some articles and messages on access sessionScope in Bind variable to a display object.
    If I understand correctly there is a differnece of opinion about it.

    In our applications, we use a lot of views with bind vars that use environment variables.
    as for now, we save the environment in the context of the session variables,
    and access them with a groovy expression in the var of binding of the VO.
    We also try to use adf.userSession.userData. But UserData is reset during the activation or passivation and all values of the variables are lost.

    What is the correct way to do it?
    Where we should record such as username, role and etc environment variables?
    values that are not changed through the whole session.

    I would like to know what is the best way to do it.

    Thank you very much!

    You must store the min the userdata in the model layer (groovy approach). However, you need passivate variables yourself. The framework does not automatically. You need to override the methods of activatesState (Element) in a request to passivate module data that you store in the userData plan and the passivatesState (Document, element).

    //In application module implementation class
    /**
     * Overridden framework method to passivate user data
     * in XML format by appending to the parent node
     */
    @Override
    public void passivateState(Document doc, Element parent) {
       //This code snippet stores the data in USERDATA node
      Element nodeUserData = doc.createElement("USERDATA");
      nodeUserData.setAttribute("KEY", "USER_DATA");
      // this sample only store one value regionId!
      nodeUserData.setAttribute("VALUE",
           getRegionId().toString());
      parent.appendChild(nodeUserData);
      super.passivateState(doc, parent);
    }
    /**
     * Overridden framework method to activate user data from
     * XML snapshot, stored during passivation
     */
     @Override
    public void activateState(Element parent) {
       //This code snippet reads the data stored in USERDATA node
      if (parent != null) {
        NodeList nl = parent.getElementsByTagName("USERDATA");
        for (int i = 0; i < nl.getLength(); i++) {
    
          Element e = (Element)nl.item(i);
          String key = e.getAttribute("KEY");
          String value = e.getAttribute("VALUE");
          setRegionId(new Integer(value));
          break;
        }
      }
      super.activateState(parent);
    }
    // regionId is made activation safe in this e.g
    private Integer regionId = null;
    
    private Integer getRegionId() {
      return regionId;
    }
    
    private void setRegionId(Integer regionId) {
      this.regionId = regionId;
    }
    

    Timo

  • Add the binding variable to more of a display object

    I have two display objects (relationship master / detail). For the first object in view, I used ExecuteWithParams, with two variables bind to filter the query.
    I want to use the same InputTexts created with ExecuteWithParams to the second object from view.
    Is this possible? Any ideas on how to achieve this?

    Thank you
    Andreas

    See if this demo helps:
    https://blogs.Oracle.com/Shay/entry/combining_multiple_queries_and

  • Determine if a display object is a component that can use the validateNow() method

    I'm trying to scroll all of my display objects to see if it is a component that I can use. validateNow() on. I found code that traverses all objects display in my scene, but I have no idea how to find out if the display object is a UI component that has the validateNow() method. My problem is when I resize my flash, components application don't make it correctly. I use validateNow on each component individually, but there must be a way to get each of them quickly. As if (dsoChild is uicomponent) then dsoChild.validateNow ().

    getChildren (this);

    function getChildren(dsObject:DisplayObjectContainer,_iDepth:int_=_0):void

    {

    var i: int = 0;

    var sDummyTabs:String = "";

    var dsoChild:DisplayObject;

    for (i; i < iDepth; i ++)

    sDummyTabs += "\t";

    trace (sDummyTabs + dsObject);

    for (i = 0; i < dsObject.numChildren; ++ I)

    {

    dsoChild = dsObject.getChildAt (i);

    If (dsoChild is DisplayObjectContainer & & 0 < DisplayObjectContainer (dsoChild) .numChildren) {}

    getChildren (dsoChild as DisplayObjectContainer, ++ iDepth);

    }

    else {}

    trace (sDummyTabs + "\t" + dsoChild);

    }

    }

    }

    not all components are the user interface components, but I think of you for those purposes and only you want to detect.

    If so, you can use UIComponent to check the user interface components.

    I'm not sure what the code because it has a useless loop so you should probably use something more reliable like:

    import flash.display.DisplayObjectContainer;

    Import fl.core.UIComponent;

    componentF (Sprite (root));

    function componentF(dobjC:DisplayObjectContainer):void {}

    If (dobjC is UIComponent) {}

    UIComponent (dobjC) .invalidate ();

    }

    for (var i: int = 0; i<>

    If (dobjC.getChildAt (i) is DisplayObjectContainer) {}

    componentF (DisplayObjectContainer (dobjC.getChildAt (i)));

    }

    }

    }

    PS ui parts have child UI components and you probably don't want to invalidate those (if in which case you should not check for children of UI components).  However, if you apply addChild to a UI component you probably will want to check children component ui.  I don't see an easy way to manage both at the same time.

  • Display object

    Hello
    I have a request-based object view (read VO only).
    How can I alter the query from this display object?

    Thanks in advance.

    Hello

    Your question means change the query declaratively? Or by programming? If it is old, then you can open it in the editor of the VO, go to the application tab and change the query accordingly. If it's later (for example Impl class), you can get the view object and use the setQuery method to define the query.

    Arun-

  • Validation on display objects

    We have validation on display objects to override the validations on the underlying entity of the cab objects?

    Hello

    There is no declarative way of validation of attributes in VO. You add validation to the entity level. Can you give us the usecase where you want to override validation of the entity?

    You can think of adding personalization (MDS) at the level of OS to have a different set of validation for different sites / roles. In addition, you can have the validation on the layer of the view of the application that consumes your model.

    Arun-

  • To access the display object on the stage of another class

    I Googled that nothing helps, I only found how to manipulate the scene itself and not a display on that object and I'm noob enough to not be able to figure it out from there. :/

    I have a clip on the main timeline with the instance name displayName. I created a button that should change this framework displayName will to (in order to... makes you guess? display the name of the button.) Awesome. )

    So, I'm trying to write the code in a reusable manner and have everything related to a class called GeoPuzzle buttons. Inside the GeoPuzzle I instantiate a touch event and run code. However, the function should be able to change displayName in the main part of the timeline and, of course, the compiler says displayName does not exist because I'm in a class and I don't mean the scene.

    Here's the code simplified in the class:

    package com.freerangeeggheads.puzzleography {}
    import flash.display.MovieClip;
    import flash.events.TouchEvent;

    SerializableAttribute public class extends MovieClip {} GeoPuzzle
    declaring variables

    public void setInitial (abbrev:String, fullName:String, isLocked:Boolean): void {}
    Set the parameters
    this.addEventListener (TouchEvent.TOUCH_BEGIN, geoTouchBeginHandler);
    }

    public void GeoPuzzle (): void {}
    }

    public void geoTouchBeginHandler (e:TouchEvent): void {}
    e.target.addEventListener (TouchEvent.TOUCH_END, geoTouchEndHandler);
    other methods
    nameDisplay.gotoAndStop (e.target.abbrev);
    }

    public void geoTouchEndHandler (e:TouchEvent): void {}
    other methods
    nameDisplay.gotoAndStop ("USA");
    }
    }
    }

    The lines in bold are my problem. Now this code does not actually as it is the case if you find an error in it, Yes, I have no idea what the problem is, but he DID run forward and these lines always gave me wrong so I'll try to help out on multiple fronts.

    How can I say displayName to change its current image within the display object class?

    Thank you!

    any display list object can refer to any display list object, but this is not necessarily good OOP.

    in any case, for your class reference displayName:

    . DisplayName MovieClip (this.parent)

  • question about cacheAsBitmap and pixelSnapping of display objects

    In my flash file, I have essentially a container movieclip that contains all the content of the site.  This container and then always is positioned in the center of the stage.  I'm not exactly keen on the fact that the edges of the content, based on the dimensions of the stage, sometimes blurred because the content is not snapping to the nearest pixel.

    Well, I looked into cacheAsBitmap and am still a little confused.  What is the only way to activate pixelsnapping for a display object (for example a movieclip) arising from the use cacheAsBitmap?

    And if this is the case, even should I use on the container?  In no case is there a lot of vector complex, so I would be hurt performance if I used it?  Caching a bitmap for my entire fair site representation seems fairly intensive memory.  I'm far from base?  Is there somewhere else I should be looking?

    If things seem fuzzy on the edges, this is your code of positioning... Use Math.floor or round or ceil to position on whole pixels:

    95 / 2 = 47.5

    Math.Floor (95 / 2) = 47

  • Unable to do the sql union in a display object

    Hi all
    I have 2 tables and I want to run a query union sql against them. But in the view object, I get the message;

    Support for declarative query does not currently include the UNION, INTERSECT or LESS.

    Is there a way to get the sql query with the unions, executed in a display object.

    I use version 10.1.3.5 for Jdeveloper/ADF.

    Thank you very much
    Amit

    Hello

    Not sure if it will work.

    Try to create the view with a single query and after object after it is created, change the view object and modify the SQL query in the source.

    Something like

      
        
      
    

    TO

      
        
      
    

    Arun-

    PS: I am able to create the view with union declarative object in JDev 11 g. Probably you can switch to 11 g;).

  • ExecuteWithParameter with lie on many display objects

    I thought I knew how to do this, but it has been a month or two and can't seem to get the syntax right. I'd appreciate some advice on this.

    I use jdev 11 to create a basic using ADF Faces page. In the model, I have three separate only reading display objects based on queries in SQL Developer, I created. I have also two tables of choice for use in LOVs to display the names of the identifications. In one of the views, I added two LOVs for columns ID I have a list of choice over which displays the name, id Tech

    All three views have the same variable named liaison -: TechID

    What I want is to have a unique selection box that displays the name of Tech column that returns the ID of TechID. When the user clicks on the ExecuteWithParms, all three points of view must be updated and re-interviewed by the new value to link and display the results. To see this work, I have worked with readonly tables, but hope eventually to use graphics for the three points of view.

    This is the general provision that I am trying to achieve.
    Select a choice (list of Tech worth display name, as well as the return of the ID value)
    ExecuteWithParams button. Currently have table1, table2, table2 in the field of the partialtriggers.

    Table1:
    ViewObject1 which has a link named: TechID

    Table2
    ViewObject2 which has a link named: TechID

    Table 3
    ViewObject3 which has a link named: TechID



    It seems it should be easy to install. Is it possible declarative, or I need code. If I need code, can I get some advice?

    Is there an example that has something similar I can gleen how?


    Thank you, Ken

    I don't think it can be done declarative. You must use a code on the line.
    The problem is that you can only bind a method call to a button. Now you have some ways to go.
    1. use three buttons (easy, but not your use case)
    2. use a clove of support where you put an action listener in the button and call the three methods in the t from here
    3. Add a method in your application module that accept a parameter, then bind it to the button. This method runs the query on each of the your

    I will exclude the first solution. Which of the other two is the best for your use case you have to decide. If you have always updated of the three your I would use the third because it shifts the logic in the model layer and it is easier to maintain.

    In the user interface still link you an executeWithParam to the key, the difference is the method resides in the module of the application. In this method, you call the methods of the your like this:

    public void updateViews(String techId)
    {
      VO1 vo1 = (VO1) this.findViewObject("VO1");
      VO2 vo2 = (VO2) this.findViewObject("VO2");
      VO3 vo3 = (VO3) this.findViewObject("VO3");
    
      vo1.updatewithParam(techID);
      vo2.updatewithParam(techID);
      vo3.updatewithParam(techID);
    }
    

    In each of the VO, you have a method

    public void   updatewithParam(String techID)
    {
      setNamedQueryParameter("techID", techId);
      executeQuery();
    }
    

    That should do it.

    Timo

Maybe you are looking for