ADF UIX: clearCache() method not working.

I have table bound to a SQL Read Only View Object = GnCodeSetupView1 in UIX page. Then I create a submitButton that called a event = "goInitForm" to clear the table before I performing new search fuction.
I wrote the following code to called "clearCache" method from the VO:
protected void processComponentEvents(DataActionContext actionContext) throws IOException, ServletException
HttpServletRequest request = actionContext.getHttpServletRequest();
String event = request.getParameter("event");
if ("goClearForm".equals(event))
ActionForm acForm = actionContext.getActionForm();
GnCodeSetupForm myForm = (GnCodeSetupForm) acForm;
ViewObject codeVo = actionContext.getBindingContext().findDataControl("com_fsc_model_am_gn_gncodesetup_GnCodeSetupAMDataControl").getApplicationModule().findViewObject("GnCodeSetupView1");
if (codeVo != null)
codeVo.clearCache();
myForm.setTxtDesc(String.valueOf(codeVo.getRowCount()));
else
super.processComponentEvents(actionContext);
Why the table still not empty after I called the .clearCache() method? I have tried to called codeVo.getRowCount() after codeVo.clearCache() method but there was still got data contain in the VO.
Please Help.
Thanks.

Hi,
the VO is the row iterator, not the EO. So to check for invalid EO, iterate the VO and get the associated EO. To remove a row, remove it from the VO and commit the change
Frank

Similar Messages

  • LOV /ADF UIX pages does not work on the older version od UIX page

    Hi
    I have recently migrated UIX project from the Jdeveoper 9i to Jdev10g version 1.0.1.2, everything work without any issue, however when I try to create a LOV or any component that are ADF-UIX based, but it does not work I don't even get any error, it just does not work based on the ADF-UIX (Expression base component),
    Any help to resolve this issue will be greatly appericated
    Thanks

    I too have problems with LOVs in UIX pages. I have
    some that you have to run twice to get back a value.To solve this problem,
    1) open your UIX page where you create a new row
    2) in the Structure window, click third tab "UI Model"
    3) double-click the control action binding corresponding to Create
    4) select CreateInsert from the list
    The problem is related to the fix we introduced for the "Blank Row Issue" (see http://www.oracle.com/technology/products/jdev/tips/muench/blankrow/index.html).
    If you have access to MetaLink, please refer to Note 299860.1 and Bug 4201020.
    Regards,
    Didier.

  • ADF JS API methods not working for the newly created rows in table

    Hi All,
    We need to make sure the focus goes back to the newly created rows first column's first component.
    Used findComponent and findComponentByAbsoulteId and even hard coded the id, but still the methods are returning null.
    Even tried ADFRichTable.getRowKey(index), by passing index as 0 for the first row, still the method is returning null.
    Tried ADFUITable.findComponent(Object scopedId, Object rowKey), but unable to pass client side rowKey as the above method is returning null.
    All our requirement is to make the focus back to the first row's component when the user clicks on the cancel button instead of save button. Appreciate your help. Thanks.
    P.S.: Rows will be created using CreateInsert method.
    JDEV Version: 11.1.2.0.0 and Table is in a region and we are using UI Shell Tab Template to launch regions.
    Raja.
    Edited by: RajaRamasamy on Feb 10, 2013 4:30 PM
    Edited by: RajaRamasamy on Feb 10, 2013 4:30 PM

    Thanks Frank,
    But some times even we use findComponentByAbsoulteLocator, its not working. So i followed the approach where you will get the rowID like the below and construct the client ID and pushing the JS to client using Service class. And it worked.
    String rowId = table.getClientRowKeyManager().getClientRowKey(facesContext, table, rowKey);
    But i am worried that even though we hard coded the client and executing the js function from the command button by keeping client listener's type as click, the focus is not setting. And i tried giving the id as tableId[rowIndex]:componentId in the findComponentByAbsoulteLocator.
    Can you let me know is there another way to make focus only using JS on click of command button, where the button does not have any action or actionListener.
    Raja.

  • After Method not work

    Hello guys,
    I need your help.
    In activity step I added one method in "Methods AFTER Work Item Execution (Modal Call)", but this method not work after complete the workitem.
    This method run in background, and insert data in one table.
    My workflow use BUS1001006 object type, and this method too.
    Any idea?
    Thanks!!!
    Kleber

    Hi Arghadip!!!
    Now it's work fine!!! Thanks!!!
    Please... more one question...
    In my method, I need the value of the element <b>_Workitem.WorkitemStatus</b>.
    It's possible:
    ===========================================================
    swc_get_element container '<b>_Workitem.WorkitemStatus</b>' vl_status.
    ===========================================================
    or
    ===========================================================
    swc_get_element container '<b>_Workitem-WorkitemStatus</b>' vl_status.
    ===========================================================
    How I do this?
    Thank a lot!!!
    Kleber

  • ADF Custom error handler not working.

    Hi All,
    i am using jdev version 11.1.1.5.0. i have created one custom error handler class in model layer which extend DcErrorHandlerImpl class.
    and do the entry in Databinding.cpx file
    *<Application ErrorHandlerClass="mypackage.classname"/>*
    i have override getDisplayMessage(BindingContext ctx, Exception ex) method to show SQL Exception which comes from database table trigger.
    code is following-
    package com.in.jagran.view.services;
        import java.sql.SQLException;
        import oracle.adf.model.BindingContext;
        import oracle.adf.model.binding.DCErrorHandlerImpl;
        import oracle.jbo.JboException;
        public class AclasErrorHandler extends DCErrorHandlerImpl {
          public AclasErrorHandler(boolean setToThrow) {
            super(setToThrow);
            System.out.println("Inside Error Handler class");
          public AclasErrorHandler() {
              super(true);
           // this(true);
           * Returns the message that will be reported to JSF for each error that occurs.
           * Returning "null" is the way the custom error handler signals that a given exception
           * should not be reported to the client.
          @Override
          public String getDisplayMessage(BindingContext ctx, Exception ex)
            if (ex instanceof oracle.jbo.ValidationException) {
              return super.getDisplayMessage(ctx, ex);
            else {
              // Extract and return the error message that has to be displayed
              Exception exception = ex;
              String message = "";
              // If this exception is an instance of JboException,
              // try to find the cause by recursing over the eventual causing exceptions
              if (exception instanceof JboException)
                Throwable[] exceptionList = ((JboException)exception).getExceptions();
                while (exception instanceof JboException
                        && exceptionList != null && exceptionList.length > 0)
                  exception = (Exception)exceptionList[0];
                  if (exception instanceof JboException) {
                    exceptionList = ((JboException)exception).getExceptions();
              // *** Special processing of SQLExceptions
              if (exception instanceof SQLException) {
                message = exception.getMessage();
                // Ignore the lines in the error message that indicate the line number in the PLSQL code that the error resulted on.
                int ind = message.indexOf("ORA-06512");
                if (ind > 0)
                  message = message.substring(0, ind);
              // *** If the the reason for the JboException was data creation exception then display the message
              // of the top JboException (i.e. JBO-*****: Invalid numeric value, date format or time format)
              else if (exception instanceof NumberFormatException || exception instanceof IllegalArgumentException) {
                // Report the top exception
                message = ex.getMessage();
              // Otherwise report the message of the lowest exception in the hierarchy
              else {
                message = exception.getMessage();
              return message;
        }but it is not working for me.
    thanks in Advance.

    yes i have used dubugger.
    i have set break point to following line-
    return super.getDisplayMessage(ctx, ex);
    if (ex instanceof oracle.jbo.ValidationException) {
            return super.getDisplayMessage(ctx, ex);   
    }when atttribute validation done like i have attribute of type number and i have done the validation "must be greater than 0" now when i have given negative value control go to above line.
    and i have added following code also in handler class
            @Override
               public void reportException(DCBindingContainer dCBindingContainer,
                                           Exception exception) {
    System.out.println(exception.getMessage());
                       super.reportException(dCBindingContainer, exception);
                   }now when i have done commit operation control go to here and println statement print follwoing error on log window.
    JBO-26041: Failed to post data to database during "Rollback to Savepoint": SQL Statement "null".

  • 1013 ADF project migration does not work

    I have previously developed a simple ADF application using Jdeveloper 1012 that contains the following components.
    1. a data page called start that contains a simple form where a user can input a name and a number
    2. this page then forwards onto a dataAction called doSomething that bings these values to a refresh method on a collection that I have written
    3. the refresh method then builds up the collection of test values, i.e. 1_David, 2_David, 3_David etc up to the number that the user entered on the form.
    4. I have used the invokeCustomMethod within the dataAction to manually force the itterator to refresh on the colleciton when the doSomething dataAction is called.
    5. this then forwards onto a dataPage called results that displays the contents of the populated collection as a read only table.
    please note that this colleciton is populated on-the-fly using a custom refreshMethod that I have written for the collection and does not retrieve data from a database.
    THIS WORKS FINE IN JDEVELOPER 1012.
    I have then tried to open this project in Jdeveloper1013. This wizard asks me if I would like to convert the project to the new format - to which I agree, but then when I try and run the program the application fails.
    I'd appreciate any help/suggestions that you may have as to why this happens.

    Hi Shay,
    I'm not getting any specific error messages when I do the conversion, the applicaiton just does not work anymore.
    As I have previously said the application I am trying to migrate from 1012 uses a collection that a dataAction populates when it is called using a refreshMethod that I have written.
    When I run the "converted" application in 1013 I don't get any errors at all but the applicaiton does not populate my collection any more. I think this may be down to the fact that I am manually resetting the itterator on the collection to -1 (therefore forcing it to be rebuilt when the dataAction is called). I have done this by using the invokeCustomMethod which is no longer supported in 1013.
    I am currently discussing this fact here:
    1013 - Force Collection To Refresh Different To 1012
    I'd appreciate any other ideas/suggestions that you may have as to why the migration process is not working correctly for ADF applications that have been developed in this manner, especially as I would like to convert a VERY large application that was developed in this way using JDeveloper 1012 into 1013 so that I can utilise the new enterprise manager within the OC4J 1013 server.

  • SSRS CatalogItem method not working for deploying a shared data source

    I have been working with the SSRS CreateCatalogItem method to deploy reports to a SSRS 2012 in SharePoint integrated mode with SharePoint Server Enterprise 2013. I am using Powershell. The CreateCatalogItem method works fine when I deploy RDL files,
    but fails when I deploy an RDS. I get an rsInvalidXML1400 error, whatever that is. Here is a cut-down version of my code to establish the bare essentials:
        [String] $reportserver = "server20";
        [String] $url = "http://$($reportserver)/sites/AdventureWorks/_vti_bin/reportserver/reportservice2010.asmx?WSDL";
        [String] $SPFolderPath = "http://server20/sites/AdventureWorks/BICenter/Data%20Connections/";
        [String] $fileFolder = "C:\SiteBackups\BIReports\BIReports\";
        [String] $itemName = "AdventureWorksCube.rds";
        $ssrs = New-WebServiceProxy -uri $url -UseDefaultCredential;       
        $warnings = $null; 
        $itemPath= $($fileFolder + $itemName);
        $definition = get-content $itemPath -encoding byte;      
        try
            $ssrs.CreateCatalogItem("DataSource", $itemName, $SPFolderPath,$False,$definition,$null, [ref] $warnings);
        catch [System.Web.Services.Protocols.SoapException]
            $msg = $_.Exception.Detail.InnerText;
            Write-Error $msg;
    I have a workaround whereby I read the XML of the data source file directly and extract the ConnectString and Extension elements then use the text within them to create the data source using the DataSourceDefinition class. My point is not to get a workaround.
    I want to establish that the CreateCatalogItem method indeed does not work when used with the ItemType "DataSource". In the code above, if I change the itemType i.e. first parameter of CreateCatalogItem to "Report" and change the $itemName
    to the name of an RDL file, it deploys correctly. Has anyone else encountered this behavior or am I doing something wrong here?
    Charles Kangai, MCT
    author of the following Microsoft Business Intelligence courses:
    http://www.learningtree.co.uk/courses/139/sql-server-analysis-services-for-business-intelligence/
    http://www.learningtree.co.uk/courses/134/sql-server-integration-services-for-business-intelligence/
    http://www.learningtree.co.uk/courses/140/sql-server-reporting-services/
    http://www.learningtree.co.uk/courses/146/sharepoint-business-intelligence/
    Charles Kangai, MCT

    Hello,
    We can invoke the SSRS proxy endpoint (ReportService2006.asmx)from PowerShell to publish report definitions (.rdl) and report models (.smdl) to a SharePoint library, but this does not apply to data source (.rds) files.
    In order to deploy .rds to SharePoint library without using SSDT, you should convert the .rds file to its .rsds counterpart which is pretty contains same content but in different schema.
    If you want to fully automate your deployment, you should write your own converter and perform the deployment by utilizing SharePoint feature framework and SSRS proxy endpoint (ReportService2006.asmx).
    Please refer to the following blog about this issue:
    PowerShell:Deploying SSRS Reports in Integrated Mode
    Deploying Reports in Integrated Mode
    Regards,
    Fanny Liu
    If you have any feedback on our support, please click
    here.
    Fanny Liu
    TechNet Community Support

  • ADF: OAF link is not working in other instance

    Hi,
    im using Jdev 11G.
    i have developed an ADF application which has 7 pages.
    one of the page has link to OAF page.
    when i click on the link its working fine in one instance when we moved to other instance its not working.
    when i click on OAF link from ADF page it shows me the below error:
    " You are trying to access a page that is no longer active.
    - You may have attempted to access to this page directly by bookmarking the page or copying the URL. This page does not support bookmarking.
    - The referring page may have come from a previous session. Please select Home to proceed. "
    Please help me to get out of this.
    Any suggestions will be really grateful.
    Thanks.

    Kumar wrote:
    Hi,
    im using Jdev 11G.
    i have developed an ADF application which has 7 pages.
    one of the page has link to OAF page.
    when i click on the link its working fine in one instance when we moved to other instance its not working.
    when i click on OAF link from ADF page it shows me the below error:
    " You are trying to access a page that is no longer active.
    - You may have attempted to access to this page directly by bookmarking the page or copying the URL. This page does not support bookmarking.
    - The referring page may have come from a previous session. Please select Home to proceed. "
    Please help me to get out of this.
    Any suggestions will be really grateful.
    It seems that your OAF linked page is requiring a session - or at minimum a user that is logged in. I'd check to see if your link is correct, then check to see if any single sign on operations are also working. (i.e. it doesn't appear that you are linking to a public page - or have an active session - on your second instance. If your user should be able to see the OAF page without logging in, I'd also check the EBS responsibilties that you have set up for that particular page access.)
    - Chad

  • ' Include ... ' tag in a page which use UIX template is not work! Help!

    I've used JDev9.0.4 and UIX.
    I want to use include and template at the same time.
    So I've put a 'globalHeader' and a 'tabBar' in 'Test.uit'.
    And I've made 'TestUIT.uix' which used 'Test.uit' as a template include 'Table.uix'.
    But 'Table.uix' included by 'TestUIT.uix' has been ignored and has not worked!!
    Is this problem oriented from my fault or a bug of jdev904?
    My codes like this.
    -->
    Test.uit
    <?xml version="1.0" encoding="windows-949"?>
    <templateDefinition xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    targetNamespace="http://www.example.org/demo/templates"
    localName="oplBaseLayout">
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui">
    <provider>
    </provider>
    <contents>
    <pageLayout>
    <tabs>
    <include node="../Component/MenuBar/TabBar.uix"/>
    </tabs>
    <pageHeader>
    <include node="../Component/MenuBar/GlobalHeader.uix"/>
    </pageHeader>
    <contents>
    </contents>
    </pageLayout>
    </contents>
    </dataScope>
    </content>
    </templateDefinition>
    TestUIT.uix
    <?xml version="1.0" encoding="windows-949"?>
    <page xmlns="http://xmlns.oracle.com/uix/controller"
    xmlns:ui="http://xmlns.oracle.com/uix/ui"
    xmlns:data="http://xmlns.oracle.com/uix/ui"
    xmlns:ctrl="http://xmlns.oracle.com/uix/controller"
    xmlns:html="http://www.w3.org/TR/REC-html40"
    xmlns:bc4j="http://xmlns.oracle.com/uix/bc4j"
    xmlns:myTemplate="http://www.example.org/demo/templates">
    <bc4j:registryDef>
    <bc4j:rootAppModuleDef name="OligoAppModule" definition="View.OplModule"
    releaseMode="stateful">
    <bc4j:viewObjectDef name="Oligo" rangeSize="3"/>
    </bc4j:rootAppModuleDef>
    </bc4j:registryDef>
    <templates xmlns="http://xmlns.oracle.com/uix/ui">
    <templateImport source="Test.uit"/>
    </templates>
    <content>
    <dataScope xmlns="http://xmlns.oracle.com/uix/ui">
    <provider/>
    <contents>
    <document>
    <metaContainer>
    <head title="UITTest"/>
    </metaContainer>
    <contents>
    <body>
    <contents>
    <myTemplate:oplBaseLayout title="UITTest">
    <contents>
    <bc4j:viewObjectScope name="Oligo">
    <contents>
    <include node="Table.uix"/> </contents>
    </bc4j:viewObjectScope>
    </contents>
    </myTemplate:oplBaseLayout>
    </contents>
    </body>
    </contents>
    </document>
    </contents>
    </dataScope>
    </content>
    <handlers/>
    </page>

    Hi -
    But 'Table.uix' included by 'TestUIT.uix' has been
    ignored and has not worked!!So is the problem that you don't see the contents of Table.uix? Are any error messages logged? Do you see the contents of the GlobalHeader.uix and TabBar.uix includes?
    It would be very helpful if you could put together a minimal testcase which reproduces the problem (no BC4J tags) that we could use to test the problem out over here.
    Andy

  • SignatureValidate() method not working in acrobat reader 5

    Hi All,
    Will the method signatureValidate() work in acrobat reader 5. the same pdf validation which is working in acrobat reader versions >= 7 and not working in version 5. Kindly let me know if there are any alternative methods available to detect the digital signature field changes in lower versions. Urgent help required on this.
    thanks in advance.

    Did you ever figure this out? I am also having problems with the "No Hand" javascript which turns off the (not very helpful) page-forward hand icon (a hand symbol with a down arrow) which confuses our users when in fullscreen mode. We create interactive PDFs and everything worked fine up to Acrobat X/Reader X. Now in XI it doesn't allow the internal link icon (pointing finger) nor weblink icon (pointing finger with W) to appear. It just remains a plain o’ hand icon no matter what you mouse over even though there are links present.

  • SetStartDate() and setEndDate() applet methods not working

    I am Using setStartDate() and setEndDate() applet methods to set Start and End Date of my XACUTE output. But its not working.
    document.<appletname>.getQueryObject().setStartDate(<Start Date>);
    document.<appletname>.getQueryObject().setEndDate(<End Date >);
    This is the part of the code i am using.

    Hi,
    It seems you are trying with proper format following things i can suggest.
    Check date time format which you are passing should be correct.
    also you can try setParam(SD,StartDate) and setParam(ED,EndDate)
    hope it helps!!
    Regards,
    Manoj Bilthare

  • Custom e-mail send method not working

    Hi all,
    I have a custom workflow (my first one, so bear with me), and implemented in the BOR a method that calls a FM which implements CL_BCS class to send an e-mail.
    BOR is a Z copy of BUS1065.
    The workflow is triggered from a FM called using SWEHR3 transaction every time a particular infotype is created/updated from either PA30 or PA40.
    The strange thing is the email is not appearing in SOST transaction and of course, not being sent. (Commit Work is in place).
    And what is more... if I execute the FM outside the PA30/40-SWEHR3 scenario, the e-mail sent is working perfectly.
    So... anyone can point me in the right direction to solve this?
    Thanks in advance for your valuable time.
    Regards,
    Andres.

    Hi Viji: I think the business object method alone works fine. As I said, when I execute the FM "manually", the e-mail is sent. Workflow log isn't showing any error in any form of execution.
    Hi Patrick: All workflow config. is in place. I know that because all the other workflows are working.
    Anyway... I'm happy to say I managed to solve the issue and here's how I did it. If anyone has a better solution, please share it.
    While I was going through the standard code of method "SendTaskDescription" BOR "SELFITEM", I noticed this SAP comment:
    *- There problems with the implementation of persistence service
    *- of objects. The symptom of this problems is that sendorders
    *- (SCOT) are not saved if an object pool exists. Therefore we
    *- create a new session in this environments.
    The "new session in this environments" made me think in "STARTING NEW TASK", so this the final calling sequence:
    PA30/PA40:
    --> Trigger Z Function configured in Tx. SWEHR03.
    > Call Z RFC Function STARTING NEW TASK.
    > Do lots of stuff and triggers Workflow.
    And everything works like a charm!
    Thanks for your suggestions!

  • Adf partial page rendering not working in safari (iphone and ipad)

    Hi,
    ADF rich faces PPR seems to not work in safari browser on iphone and ipad.
    PPR works first time around, but fails on the second click on the same page on the sam button.
    Any one else had the same problem with Safari browser?
    Johnny

    Hi Shay,
    Thank you for the quick answer.
    No it does not work on the ipad or iphone.
    It works on chrome for the ipad!
    PPR does not work for the second click on the same button.
    In you example it will accept the first click but ignore the rest of the clicks on the same button.
    We are about to create a ADF app for the ipad and this is a major showstopper.
    Hope we can find some sort of workaround, that does not involve dropping PPR.
    Regards Johnny

  • Confusion about get/set method not working

    Hi
    Hopefully someone can point out the elementary mistake I have made in my code. I have created a get/set method to hold a value"total" so that I can then get it to display it further down my code in an HTML page. I am setting the value as I can check this by printing it out (line 102) but when I try to use it again it displays 0.0. What have I done wrong?
    class ReportListener implements ActionListener
         Context context;
         ResultSet resultAll;
         ResultSet resultTotal;
         JFrame frame;
         int daysInMonth;
         int i;
         DisplayCurrencyOnBills d;
         DateFormatSymbols symbols;
         String[] newWeekday;
         Date theDate;
         String date;
         ReportListener (Context theContext)
              context = theContext;
         public void actionPerformed(ActionEvent e)
           try
              printWeeklyReport();
              //countDaysInMonth();
              getReportMoneyTotal();
         catch (SQLException s)
                   s.printStackTrace();
         public void countDaysInMonth()
         public void getReportMoneyTotal() throws SQLException
              Calendar todayTotal =Calendar.getInstance() ;
               SimpleDateFormat reportDateFormat = new SimpleDateFormat("dd MM yyyy");
              PreparedStatement preparedT =context.getConnection().prepareStatement(
                   "SELECT Sum(tblSession.Fee) AS Total, Count(tblBooking.BookingID) AS CountOfBookingID FROM tblSession INNER JOIN "+
                   "(tblBooking INNER JOIN tblCustomer_Booking ON tblBooking.BookingID = tblCustomer_Booking.BookingID) ON tblSession.SessionID = tblBooking.SessionID "+
                   "WHERE (((tblBooking.EventDate)>DateAdd('m',-1,#"+reportDateFormat.format(todayTotal.getTime())+"#)) AND ((tblSession.Session)='Morning' Or (tblSession.Session)='Evening')) OR (((tblSession.Session)='Afternoon') AND ((tblBooking.Extension)=Yes))"
              ResultSet resultTotal =preparedT.executeQuery();
              resultTotal.next();
              double total =resultTotal.getDouble("Total");     
              context.setReportIncomeTotal(total);
              System.out.println("Line 102 "+context.getReportIncomeTotal());
              preparedT.close();
         public void printWeeklyReport() throws SQLException
              Calendar today =Calendar.getInstance() ;
               SimpleDateFormat reportDateFormat = new SimpleDateFormat("dd MM yyyy");
              PreparedStatement prepared =context.getConnection().prepareStatement(
                   "SELECT tblBooking.EventDate, tblSession.Session, tblBooking.Extension, tblSession.Fee, Count(tblBooking.BookingID) AS CountOfBookingID "+
                   "FROM tblSession INNER JOIN (tblBooking INNER JOIN tblCustomer_Booking ON tblBooking.BookingID = tblCustomer_Booking.BookingID) ON "+
                   "tblSession.SessionID = tblBooking.SessionID GROUP BY tblBooking.EventDate, tblSession.Session, tblBooking.Extension, tblSession.Fee "+
                   "HAVING (((tblBooking.EventDate)>DateAdd('m',-1,#"+reportDateFormat.format(today.getTime())+"#)) AND ((tblSession.Session)='Morning' Or "+
                   "(tblSession.Session)='Evening')) OR (((tblSession.Session)='Afternoon') AND ((tblBooking.Extension)=Yes))"
              ResultSet resultAll =prepared.executeQuery();
              resultAll.next();
              System.out.println("Line 123 "+context.getReportIncomeTotal());
                        PrintWriter printWriter;
                        try
                             JFileChooser fc=new JFileChooser();
                             int returnVal = fc.showSaveDialog(frame);
                             if (returnVal != JFileChooser.APPROVE_OPTION)
                                  return;
                             FileOutputStream outputStream=
                                  new FileOutputStream(fc.getSelectedFile());
                             OutputStreamWriter writer=
                                  new OutputStreamWriter(outputStream,"UTF-8");
                             printWriter=new PrintWriter(writer);     
                           printWriter.println("<html><meta http-equiv='Content-Type' content='text/html; charset=UTF-8'><body><h1>Monthly Usage Statistics</h1>");
                           printWriter.println("<table width='100%' border='1'><tr><td width='100%' colspan='8'><h2 align='center'>Monthly Summary</h2></td></tr>");
                         System.out.println("Line 152 "+context.getReportIncomeTotal());
                         int count = 0;
                             while ( resultAll.next() )
                              count++;
                              String session = resultAll.getString("Session");
                              Double fee= resultAll.getDouble("Fee");
                           // display currency correctly
                         //double d=Double.parseDouble(fee);
                         Locale locale = new Locale("GBP");
                         NumberFormat gbpFormat = NumberFormat.getCurrencyInstance(locale);
                             symbols = new DateFormatSymbols(new Locale("en"));
                         newWeekday =symbols.getWeekdays();
                             SimpleDateFormat formatter = new SimpleDateFormat("EEEE",symbols);
                             Date theEventDate = new Date();
                             theEventDate=resultAll.getDate("EventDate");
                             date = formatter.format(theEventDate);
                             // set date for Usage Report
                             Calendar reportDate = Calendar.getInstance();
                             Calendar reportToday =Calendar.getInstance();
                             reportDate.add(Calendar.MONTH,-1);
                             SimpleDateFormat reportFormat = new SimpleDateFormat("EEEE ,dd MMM yyy");     
                             //setDecimalFormat for report total
                             DecimalFormat decFormat = new DecimalFormat(".##");
                             printWriter.println(
                             "<tr><td width='100%' colspan='8'>For month from "+reportFormat.format(reportDate.getTime())+" to "+reportFormat.format(reportToday.getTime())+"</td></tr><tr><td width='100%' colspan='8'>Total amount of income from occasional bookings "+decFormat.format(context.getReportIncomeTotal())+"</td>"+
                               "</tr><tr><td width='100%' colspan='8'>Percentage use for all bookings</td></tr><tr><td width='8%'></td><td width='8%'>MON</td><td width='9%'>TUES</td>"+
                            "<td width='9%'>WEDS</td><td width='9%'>THURS</td><td width='9%'>FRI</td><td width='9%'>SAT</td><td width='9%'>SUN</td></tr><tr><td width='8%'>AM</td><td width='8%'></td>"+
                            "<td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td></tr><tr><td width='8%'>PM</td><td width='8%'></td>"+
                            "<td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td></tr><tr><td width='8%'>EVE</td><td width='8%'></td>"+
                            "<td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td><td width='9%'></td></tr>"
                             System.out.println(count);
                             printWriter.println("</table>");
                             printWriter.println("</body></html>");
                             printWriter.close();
                             prepared.close();
                             JDialog reportDialog=new JDialog(frame);
                             reportDialog.setSize(800,600);
                             JEditorPane editorPane=new JEditorPane(fc.getSelectedFile().toURL());
                             editorPane.setContentType("text/html; charset=UTF-8");
                             reportDialog.getContentPane().add(editorPane);
                             reportDialog.setVisible(true);
                        catch (IOException exception)
                             exception.printStackTrace();
         This code finds data from a database(this works as it also prints a report). Here is the extraxt of my get/set method which is located in a "context" class.
    public void setReportIncomeTotal(double total)
              this.total=total;
         public double getReportIncomeTotal()
              return total;
         }I'd be grateful for any help.

    but when I try to use it again it displays 0.0This seems to mean that either the value has been reset or you are calling the method on another (new) ReportListener.
    It's hard to say, as you didn't provide us with the code sample that illustrate the corresponding scenario (did you?.)
    Note that I didn't get into details, but I just noticed that your actionPerformed method first print weekly report, and then get the money total. (Shouldn't it be the opposite order?)

  • ActionPerformed method not working when applet is loaded in browser window.

    Hey there guys. I need urgent help from anybody who has experience in deploying websites whose code is in java.
    I am having two problems as mentioned below...
    first, I have made a simple login screen using java swing and JApplet. there is a single button to login. the action performed for this button accesses a private method to check the username and password which are there in atext file. the applet is working perfectly in appletviewer but when i load the applet in a Internet Explorer window using HTML's Applet tag, the button is giving no response at all even when i enter the correct username and password.
    I guess it is either not calling the private function that is checking the username and password from the tes=xt file or it can not access the file. Please help as soon as possible as this is related to my college project.
    I am attaching the code herewith. Suggestions to improve the coding are also welcome.
    the second problem is that while writing my second program for generating a form which registers a user the html is not at all loading the applet into the browser and also if im trying to access a file to write all the details into the console is showing numerous amount of error after i press the button which i can't not understand. the only thing i can understand is that it is related to file access permissions. If anybody could put some light on the working of worker threads and thread safe activities of SwingUtilities.invokeandWait method it would be really appreciable.
    import java.io.*;
    import java.awt.*;
    import javax.swing.*;
    import java.awt.event.*;
    import javax.swing.event.*;
    import javax.swing.plaf.*;
    <applet code = "UserLogin" width = 300 height = 150>
    </applet>
    public class UserLogin extends JApplet implements ActionListener, KeyListener {
         private JLabel lTitle;
         private JLabel lUsername, lPassword;
         private JTextField tUsername;
         private JPasswordField tPassword;
         private JButton bLogin;
         private JLabel lLinkRegister, lLinkForgot;
         private JLabel lEmpty = new JLabel(" ", JLabel.CENTER);
         private JPanel panel1, panel2;
         public void init() {
              try {
                   UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
                   SwingUtilities.invokeAndWait(new Runnable() {
                        public void run() {
                             LoginGUI();
              catch(Exception e) {
                   e.printStackTrace();
         public void start() {
              setVisible(true);
         public void stop() {
              setVisible(false);
         private void LoginGUI() {
              super.setSize(300, 150);
              super.setBackground(Color.white);
              lTitle = new JLabel("<HTML><BODY><FONT FACE = \"COURIER NEW\" SIZE = 6 COLOR = BLUE>Login</FONT></BODY></HTML>", JLabel.CENTER);
              lUsername = new JLabel("Username : ", JLabel.CENTER);
              lPassword = new JLabel("Password : ", JLabel.CENTER);
              tUsername = new JTextField(15);
              tPassword = new JPasswordField(15);
              bLogin = new JButton("LOGIN");
    //          bLogin.setEnabled(false);
              bLogin.addActionListener(this);
              bLogin.addKeyListener(this);
              panel2 = new JPanel();
              GridBagLayout gbag = new GridBagLayout();
              GridBagConstraints gbc = new GridBagConstraints();
              panel2.setLayout(gbag);
              panel2.addKeyListener(this);
              gbc.anchor = GridBagConstraints.CENTER;
              panel2.setMinimumSize(new Dimension(300, 200));
              panel2.setMaximumSize(panel2.getMinimumSize());
              panel2.setPreferredSize(panel2.getMinimumSize());
              gbc.gridx = 1;
              gbc.gridy = 1;
              gbag.setConstraints(lUsername,gbc);
              panel2.add(lUsername);
              gbc.gridx = 2;
              gbc.gridy = 1;
              gbag.setConstraints(tUsername,gbc);
              panel2.add(tUsername);
              gbc.gridx = 1;
              gbc.gridy = 2;
              gbag.setConstraints(lPassword,gbc);
              panel2.add(lPassword);
              gbc.gridx = 2;
              gbc.gridy = 2;
              gbag.setConstraints(tPassword,gbc);
              panel2.add(tPassword);
              gbc.gridx = 2;
              gbc.gridy = 3;
              gbag.setConstraints(lEmpty,gbc);
              panel2.add(lEmpty);
              gbc.gridx = 2;
              gbc.gridy = 4;
              gbag.setConstraints(bLogin,gbc);
              panel2.add(bLogin);
              panel1 = new JPanel(new BorderLayout());
              panel1.add(lTitle, BorderLayout.NORTH);
              panel1.add(panel2, BorderLayout.CENTER);
              add(panel1);
              setVisible(true);
         public void keyReleased(KeyEvent ke) {}
         public void keyTyped(KeyEvent ke) {}
         public void keyPressed(KeyEvent ke) {
              if(ke.getKeyCode() == KeyEvent.VK_ENTER){
                   String username = tUsername.getText();
                   String password = new String(tPassword.getPassword());
                   if(username.length() == 0 || password.length() == 0) {
                        JOptionPane.showMessageDialog(new JFrame(),"You must enter a username and password to login", "Error", JOptionPane.ERROR_MESSAGE);
                   else {
                        boolean flag = checkUsernamePassword(username, password);
                        if(flag)
                             JOptionPane.showMessageDialog(new JFrame(),"Username and Password Accepted", "Access Granted", JOptionPane.INFORMATION_MESSAGE);
                        else
                             JOptionPane.showMessageDialog(new JFrame(),"Username or password Incorrect", "Access Denied", JOptionPane.INFORMATION_MESSAGE);
         public void actionPerformed(ActionEvent ae) {
              String gotCommand = ae.getActionCommand();
              if(gotCommand.equals("LOGIN")) {
                   String username = tUsername.getText();
                   String password = new String(tPassword.getPassword());
                   if(username.length() == 0 || password.length() == 0) {
                        JOptionPane.showMessageDialog(new JFrame(),"You must enter a username and password to login", "Error", JOptionPane.ERROR_MESSAGE);
                   else {
                        boolean flag = checkUsernamePassword(username, password);
                        if(flag)
                             JOptionPane.showMessageDialog(new JFrame(),"Username and Password Accepted", "Access Granted", JOptionPane.INFORMATION_MESSAGE);
                        else
                             JOptionPane.showMessageDialog(new JFrame(),"Username or password Incorrect", "Access Denied", JOptionPane.INFORMATION_MESSAGE);
         private boolean checkUsernamePassword(String username, String password) {
              String user = null, pswd = null;
              try {
                   FileInputStream fin = new FileInputStream("@data\\userpass.txt");
                   DataInputStream din = new DataInputStream(fin);
                   BufferedReader brin = new BufferedReader(new InputStreamReader(din));
                   user = (String) brin.readLine();
                   pswd = (String) brin.readLine();
              catch(IOException ioe) {
                   ioe.printStackTrace();
              if(username.equals(user) && password.equals(pswd))
                   return true;
              else
                   return false;
    }PLEASE HELP ME GUYS......

    RockAsh wrote:
    Hey Andrew, first of all sorry for that shout, it was un-intentional as i am new to posting topics on forums and didn't new that this kind of writing is meant as shouting. Cool.
    Secondly thank you for taking interest in my concern.No worries.
    Thirdly, as i mentioned before, I am reading i file for checking of username and password. the file is named as "userpass.txt" and is saved in the directory named "@data" which is kept in the same directory in which my class file resides.OK - server-side. That makes some sense, and makes things easier. The problem with your current code is that the applet will be looking for that directory on the end user's local file system. Of course the file does not exist there, so the applet will fail unless the the end user is using the same machine as the server is coming from.
    To get access to a resource on the server - the place the applet lives - requires an URL. In applets, URLs are relatively easy to form. It might be something along the lines of
    URL urlToPswrd = new URL(getCodeBase(), "@data/userpass.txt");
    InputStream is = urlToPswrd.openStream();
    DataInputStream din = new DataInputStream(is);
    So the problem is that it is reading the file and showing the specific output dialog box when i run it through appletviewer.. Huhh. What version of the SDK are you using? More recent applet viewers should report security exceptions if the File exists.
    ..but the same is not happening when i launch the applet in my browser window using the code as written belowHave you discovered how to open the Java Console in the browser yet? It is important.
    Also the answer to your second question
    Also, the entire approach to storing/restoring the password is potentially wrong. For instance, where is it supposed to be stored, on the server, or on the client?is that, as of now it is just my college project so all the data files and the username and password wiles will be stored on my laptop only i.e. on the client only. no server involved.OK, but understand that an applet ultimately does not make much sense unless deployed through a server. And the entire server/client distinction becomes very important, since that code would be searching for a non-existent file on the computer of the end user.

Maybe you are looking for