How to write events

What is actually responsible for propagating an event. Should in case I want an event to be triggered when a value changes.
My approach was to make a watching internal Thread class call the Listener when the value changes. Is this a simple approach to event-based programming?

My approach was to make a watching internal Thread
class call the Listener when the value changes. Is
this a simple approach to event-based programming?Take a look at PropertyChangeListener and PropertyChangeEvent:
http://java.sun.com/j2se/1.4.2/docs/api/java/beans/PropertyChangeListener.html
http://java.sun.com/j2se/1.4.2/docs/api/java/beans/PropertyChangeEvent.html
Then, wherever you change the value, you send a PropertyChangeEvent, and anyone who has registered a PropertyChangeListener can be notified.
No sense re-writing something that already exists.

Similar Messages

  • How to write events and event handlers?

    Any samples?
    Thanks

    You can generate your custom events and it is very easy.
    You will have to extend the EventObject class in order to make an class representing the event.
    Iam giving a brief eg:
    class MyEvent extends EventObject
    MyEvent(Object source)
    super(source);//source which generated the event.
    //your own code
    interface MyEventListener
    public void myEventPerformed(MyEvent e);
    class abc
    java.util.ArrayList arr;
    abc
    arr = new java.util.ArrayList();
    public synchronized void addMyEventListener (MyEventListener l)
    arr.add(l);
    public synchronized void removeMyEventListener (MyEventListener l)
    arr.remove(arr.indexOf(l));
    protected void notifyTransEvent(Object source)
    MyEvent tEvent = new MyEvent(source);
    Iterator itr = arr.iterator();
    Iterator itr = arr.iterator();
    while(itr.hasNext())
    ((MyEventListener)itr.next()).myEventPerformed(tEvent);
    Now anyone implementing the MyEventListener inetrface can be added in the ArrayList.The ArrayList is the list representing the interesting parties who want to receive the event.When registered they will receive the event.
    This class abc is just like an component which on certain situations generate event.You can call notifyEvent in any case where you want the event to be generated.
    You will then add this class to your main class as this
    class xyz implements MyEventListener
    abc obj;
    xyz()
    obj.addMyEventListener(this);
    public void myEventPerformed(MyEvent e)
    //your handling code
    Hope this example will suffice.

  • Use a "Write" Event on a Specific Drive or to a Specific Folder to Trigger a Task in Task Scheduler

    I first posted this question on the Microsoft Community forum. It was suggested that I repost it here.
    I have a question!
    (Pleas forgive the long post...)
    What I am trying to do: (This is what I have not yet figured out!)
    I am trying to figure out how to trigger a task, in Windows Task Scheduler (WTS), whenever a "Disk Write" event occurs on a specified drive on the machine. - Or, more specifically, whenever a new file or folder is written or
    saved to a specified Folder, or a specific Disk Partition, or a specific Hard Disk on the machine - whichever is more relevant for the end goal.
    The overall goal:
    When a "disk write" operation occurs and data is written to a specified location on a Hard Drive, start a Program at the beginning of the following hour, that will run a backup of the contents
    of that location, (after - of course - the new data has been written). After the backup is complete, disallow the program from being started again at the beginning of the next hour, unless more data is written to the specified location beforehand.
    Example:
    At 2:27pm, I save a new word document to "D:\My Folder\". When the new Word doc file is saved to "D:\My Folder\", my preferred Backup software application is then scheduled to run a backup at the beginning of
    the following hour - at 3:00pm - which will then create a new backup of "D:\My Folder\".
    The backup software will NOT be scheduled to run again at the next following hour - at 4:00pm - unless another file or additional data is written to "D:\My Folder\" - between 3:00pm and 4:00pm.
    Summary:
    The goal here is to only run a backup at the beginning of the next hour, following a “disk write” event to a specified location on the hard drive.
    Steps that I have, so far, on how to make this happen:
    Whenever data is written to a specified location on a hard drive (i.e. "D:\My Folder\"), "Task A," in Windows Task Scheduler, will be triggered to execute its action.
    The Action in "Task A" will run a script that changes the Status of "Task B" to ENABLED.
    The Action in "Task B" will, on a continuous hourly schedule, start a program that will perform work on the machine. (In this case, it will run a Backup Task in my preferred backup software.)
    Upon completion of work by that program (the Backup software), that program will run another script that will change the Status of "Task B" back to DISABLED; preventing "Task B" from continuing that program every hour
    according to its hourly schedule.
    How do I do this: ... ?
    The thing holding me back on making this work is figuring out how to identify the source that generates the “disk write” event and event ID I need, so I can use it to trigger a task in Windows Task Scheduler - in the way that I need. Furthermore,
    the “disk write” event needs to specific to a disk drive that I specify and if at all possible, specific to a location that I specify, i.e. “D:\My Folder\”.
    Any help on this as well as other suggestions on making this work is greatly appreciated!
    Ryan A Miller

    Hello Ryan A Miller,
    What is your current situation?
    Have you try the script as  Frederik Long mentioned?
    To receive better support, it is recommended to post in the TechNet Script forum.
    https://social.technet.microsoft.com/Forums/scriptcenter/en-US/home?forum=ITCG
    The professionals there will be glad to help you.
    Best regards,
    Fangzhou CHEN
    Fangzhou CHEN
    TechNet Community Support

  • How to write an element in a  JTable Cell

    Probably it's a stupid question but I have this problem:
    I have a the necessity to build a JTable in which, when I edit a cell and I push a keyboard button, a new Frame opens to edit the content of the cell.
    But the problem is how to write something in the JTable cell, before setting its model. Because, I know, setCellAT() method of JTree inserts the value in the model and not in the table view. And repainting doesn't function!
    What to do??
    Thanks

    Hi there
    Depending on your table model you should normally change the "cell value" of the tablemodel.
    This could look like:
    JTable table = new JTable();
    TableModel model = table.getModel();
    int rowIndex = 0, columnIndex = 0;
    model.setValueAt("This is a test", rowIndex, columnIndex);
    The tablemodel should then fire an event to the view (i.e. JTable) and the table should be updated.
    Hope this helps you

  • How to write a composite element in iterator?

    Hi,
      I want to write a composite element in iterator which has the same result as BSP element like this in BSP layout:
      <htmlb:link id = "link1"
                  reference = "http://www.sap.com">
      <htmlb:textView id = "text1"
                      textColor = "<%=gv_color%>"
                      text      = "ddddd" />
      </htmlb:link>
      Do you know how to write this in iterator? Thanks!

    Hi,
    you can use the replacement bee:
    data: o_link TYPE REF TO cl_htmlb_link.
    CASE p_column_key.
        WHEN 'column_name'.
            w_event = model->get_sapevent_string(
                            name    = 'activity'
                            system  = 'crm'
                            key     = o_ref->guid ).
            o_link    = cl_htmlb_link=>factory( id  = p_cell_id
                                              text = 'text'
                                              tooltip = 'tooltip'
                                              reference = w_event ).
            p_replacement_bee  = o_link.
    ENDCASE.
    in w_event you declare your event, eg. the calling of a
    sap event or you navigation.
    you can find an example in:
    <a href="/people/thomas.jung3/blog/2004/09/15/bsp-150-a-developer146s-journal-part-xi--table-view-iterators by Thomas Jung</a>
    grtz
    Koen

  • Why and how to use events in abap objects

    Dear all,
      Please explain me why and how to use events in abap objects with real time example
    regards
    pankaj giri

    Hi Pankaj,
    I will try to explain why to use events... How to use is a different topic.. which others have already answered...
    This is same from your prev. post...
    Events :
    Technically speaking :
    " Events are notifications an object receives from, or transmits to, other objects or applications. Events allow objects to perform actions whenever a specific occurrence takes place. Microsoft Windows is an event-driven operating system, events can come from other objects, applications, or user input such as mouse clicks or key presses. "
    Lets say you have an ALV - An editable one ...
    Lats say - Once you press some button  you want some kind of validation to be done.
    How to do this ?
    Raise an Event - Which is handled by a method and write the validation code.
    Now you might argue, that I can do it in this way : Capture the function code - and call the validate method.
    Yes, in this case it can be done.. But lets say .. you change a field in the ALV and you want the validation to be done as soon as he is done with typing.
    Where is the function code here ? No function code... But there is an event here - The data changed event.
    So you can raise a data changed event that can be handled and will do the validation.
    It is not user friendly that you ask the user to press a button (to get the function code) for validation each time he enters a data.
    The events can be raised by a system, or by a program also. So in this case the data changed event is raised by a system that you can handle.
    Also, Lets say on a particular action you want some code to trigger. (You can take the same example of validation code). In this case the code to trigger is in a separate class. The object of which is not available here at this moment. (This case happens very frequently).
    Advantage with events : Event handlers can be in a separate class also.
    e.g : In the middle of some business logic .. you encounter a error. You want to send this information to the UI (to user - in form of a pop up) and then continue with some processing.
    In many cases - A direct method call to trigger the pop up is not done. Because (in ideal cases) the engine must not interact with UI directly - Because the UI could be some other application - like a windows UI but the error comes from some SAP program.
    So - A event is raised from the engine that is handled in the UI and a pop up is triggered.
    Here -- I would have different classes (lets say for different Operating Systems). And all these classes must register to the event ERROR raised in application.
    And these different classes for different Operation systems will have different code to raise a pop-up.
    Now you can imagine : If you coded a pop-up for Windows (in your application logic) .. it will not work for Mac or Linux. But of you raise a event.. that is handled separately by a different UI classes for Win, Linux or Mac  they will catch this event and process accordingly.
    May be I complicated this explanation .... but I couldn't think of a simpler and concrete example.
    Cheers.
    Varun.

  • How to write the JTables Content into the CSV File.

    Hi Friends
    I managed to write the Database records into the CSV Files. Now i would like to add the JTables contend into the CSV Files.
    I just add the Code which Used to write the Database records into the CSV Files.
    void exportApi()throws Exception
              try
                   PrintWriter writing= new PrintWriter(new FileWriter("Report.csv"));
                   System.out.println("Connected");
                   stexport=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);
                   rsexport=stexport.executeQuery("Select * from IssuedBook ");
                   ResultSetMetaData md = rsexport.getMetaData();
                   int columns = md.getColumnCount();
                   String fieldNames[]={"No","Name","Author","Date","Id","Issued","Return"};
                   //write fields names
                   String rec = "";
                   for (int i=0; i < fieldNames.length; i++)
                        rec +='\"'+fieldNames[i]+'\"';
                        rec+=",";
                   if (rec.endsWith(",")) rec=rec.substring(0, (rec.length()-1));
                   writing.println(rec);
                   //write values from result set to file
                    rsexport.beforeFirst();
                   while(rsexport.next())
                        rec = "";
                         for (int i=1; i < (columns+1); i++)
                             try
                                    rec +="\""+rsexport.getString(i)+"\",";
                                    rec +="\""+rsexport.getInt(i)+"\",";
                             catch(SQLException sqle)
                                  // I would add this System.out.println("Exception in retrieval in for loop:\n"+sqle);
                         if (rec.endsWith(",")) rec=rec.substring(0,(rec.length()-1));
                        writing.println(rec);
                   writing.close();
         }With this Same code how to Write the JTable content into the CSV Files.
    Please tell me how to implement this.
    Thank you for your Service
    Jofin

    Hi Friends
    I just modified my code and tried according to your suggestion. But here it does not print the records inside CSV File. But when i use ResultSet it prints the Records inside the CSV. Now i want to Display only the JTable content.
    I am posting my code here. Please run this code and find the Report.csv file in your current Directory. and please help me to come out of this Problem.
    import javax.swing.*;
    import java.util.*;
    import java.io.*;
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.table.*;
    public class Exporting extends JDialog implements ActionListener
         private JRadioButton rby,rbn,rbr,rbnore,rbnorest;
         private ButtonGroup bg;
         private JPanel exportpanel;
         private JButton btnExpots;
         FileReader reading=null;
         FileWriter writing=null;
         JTable table;
         JScrollPane scroll;
         public Exporting()throws Exception
              setSize(550,450);
              setTitle("Export Results");
              this.setLocation(100,100);
              String Heading[]={"BOOK ID","NAME","AUTHOR","PRICE"};
              String records[][]={{"B0201","JAVA PROGRAMING","JAMES","1234.00"},
                               {"B0202","SERVLET PROGRAMING","GOSLIN","1425.00"},
                               {"B0203","PHP DEVELOPMENT","SUNITHA","123"},
                               {"B0204","PRIAM","SELVI","1354"},
                               {"B0205","JAVA PROGRAMING","JAMES","1234.00"},
                               {"B0206","SERVLET PROGRAMING","GOSLIN","1425.00"},
                               {"B0207","PHP DEVELOPMENT","SUNITHA","123"},
                               {"B0208","PRIAM","SELVI","1354"}};
              btnExpots= new JButton("Export");
              btnExpots.addActionListener(this);
              btnExpots.setBounds(140,200,60,25);
              table = new JTable();
              scroll=new JScrollPane(table);
              ((DefaultTableModel)table.getModel()).setDataVector(records,Heading);
              System.out.println(table.getModel());
              exportpanel= new JPanel();
              exportpanel.add(btnExpots,BorderLayout.SOUTH);
              exportpanel.add(scroll);
              getContentPane().add(exportpanel);
              setVisible(true);
          public void actionPerformed(ActionEvent ae)
              Object obj=ae.getSource();
              try {
              PrintWriter writing= new PrintWriter(new FileWriter("Report.csv"));
              if(obj==btnExpots)
                   for(int row=0;row<table.getRowCount();++row)
                             for(int col=0;col<table.getColumnCount();++col)
                                  Object ob=table.getValueAt(row,col);
                                  //exportApi(ob);
                                  System.out.println(ob);
                                  System.out.println("Connected");
                                  String fieldNames[]={"BOOK ID","NAME","AUTHOR","PRICE"};
                                  String rec = "";
                                  for (int i=0; i <fieldNames.length; i++)
                                       rec +='\"'+fieldNames[i]+'\"';
                                       rec+=",";
                                  if (rec.endsWith(",")) rec=rec.substring(0, (rec.length()-1));
                                  writing.println(rec);
                                  //write values from result set to file
                                   rec +="\""+ob+"\",";     
                                   if (rec.endsWith(",")) rec=rec.substring(0,(rec.length()-1));
                                   writing.println(rec);
                                   writing.close();
         catch(Exception ex)
              ex.printStackTrace();
         public static void main(String arg[]) throws Exception
              Exporting ex= new Exporting();
    }Could anyone Please modify my code and help me out.
    Thank you for your service
    Cheers
    Jofin

  • Writting Events for TableView Buttons

    Hi SDN,
    I created a table view in a jsp dynpage which has one of the columns type as button.i got it by using "setColumnType" attribute of tableview.
    now i want to fire server and client events onclick of those buttons.how to achieve it? can we write client and server events for those buttons as like normal buttons.
    if yes tell me how and where to write?
    explain me with example (coding) if possible.
    Thanks & Regards,
    Art.
    /points will be rewarded/

    Hi Subathra,
    Thank you for ur reply.i know that we can achieve it using "setOnCellClick " but i want to know whether we can use the normal attributes of a button for this button placed in a cell of a tableview.
    if yes how to use it.is there any relation between cell renderer attribute and my requirement.
    <b><u>Note:</u></b>
    you can share ur ideas about other components also which can be used in a tableview (inputfield,link,image...) and writting events for those components.
    Thanks & Regards,
    Art

  • How to write to file Unicode characters

    I have PDF files that I need to copy some strings out of and put them in various fields in a Postgres database. The goal is a Java screen into the database, whiere I mark and copy the PDF text and then paste it into a field in a Swing window, and from there into the database.
    I am unsuccessful at reading a PDF file, so I have opted to cut and paste the PDF file into an MS word file. This results in errors in certain unicode characters. I am trying to rectify them by a simple program, a start of which is below, by a replacement of the erroneous char by the proper unicode symbol. As, shown by the following, I cannot figure out how to write out a unicode character. Do I need to wrap (which I don't know much about yet)? Or do I have a file problem? (I have a Vista machine.) I don't think it should be impossible to write unicode into a file, as I am able to write into MS Word files phonological symbols, Russian, and Sanskrit. So, it must be in the java.
    P.S.: I am reading Schildt's Java: A Beginner's Guide and am through chapter10, but remaining chapters are on threads, enumerations, autoboxing, static import, annotations; generics,; applets, events, and miscellaneous topics, and, finally Swing. Maybe its in the autoboxing?
    Any help would be most appreciated.
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.PrintWriter;
    import java.io.IOException;
    public class CopyCharacters {
    public static void main(String[] args) throws IOException {
    FileReader inputStream = null;
    //FileWriter outputStream = null;
    PrintWriter outputStream = null;
         char longa = 0x0101;
         int longc = 0x0101;
         char capA = 0x0041;
         char longb = 0x0111;
    // Unicode for uppercase Greek omega character char uniChar = '\u039A'
         char uniChar = '\u039A';
    // Character ca = new Character('0x0101'); // illegal
         Character cb = new Character('\u0101');
         Character cc = '\u0101';
    int c;
    try {
    inputStream = new FileReader("Cardona1.txt");
    outputStream = new
                   PrintWriter(new FileWriter(
                        "characteroutput.txt"));
              outputStream.println( "character1 " + capA); //yields A
              outputStream.println( "character2 " + longa); //yields ?
              outputStream.println( "character3 " + '\u0101'); //yields ?
              outputStream.println( "character4 " + longc); //yields 257
              outputStream.println( "character5 " + "S\u00ED Se\u00F1or"); // yields character Sí Señor
              outputStream.println( "character6 " + "S'\u00ED' Se\u00F1or"); // yields S'í' Señor
              outputStream.println( "character7 " + "S\u0121 Se\u00F1or"); // yields character S? Señor
              outputStream.println( "character8 " + "S'\u0121' Se\u00F1or"); // yields character S'?' Señor
              outputStream.println( "character9 " + uniChar);// yields character ?
              outputStream.println( "character10 " + '\u00FF');// yields character ÿ but fails on \u0100.
    // only 0-255!!
              outputStream.println( "character11 " + cc);// yields ?
              outputStream.println( "character12 " + cb);// yields ?
              outputStream.println( "character13 ?");// yields ?
    while ((c = inputStream.read()) != -1) {
         // outputStream.writeln(c);- error
    } finally {
    if (inputStream != null) {
    inputStream.close();
    if (outputStream != null) {
    outputStream.close();
    }

    I am unsuccessful at reading a PDF file, so I have opted to cut and paste the PDF file into an MS word file. This results in errors in certain unicode characters.Stop right there. You are digging a hole. Stop digging. Fix the problems with reading the PDF file.

  • How to get event from message?

    Hi,All:
    I write a run-time interface by CVI, I use TS_EngineRegisterUIMessageCallback to register my callback function, but when message passed to the callback function, as the type is struct IDispatch but not CAObjHandle, I don't know how to read event from message.
    Can you help me to solve it? Thanks
    Chang Zhang

    Hello Chang-
    If your question is simply how to obtain an object handle from an object of type IDispatch, have you investigated the function "CA_CreateObjHandleFromIDispatch"? I would recommend you look over the testexec.prj that is installed along with the TestStand engine (the CVI Operator Interface) and inspect how we handle our callbacks, this may help you understand how to go about emulating the behavior in your own project. To see this particular function in use it may be most helpful to look in the file 'engine.c' and inside the function UIMessageDeferredCallback here you will see the IDispatch pointer being handled and decoded for use by the TS engine.
    Regards,
    Elaine R.
    Applications Engineering
    National Instruments
    http://www.ni.com/ask

  • How to write BDC for KP06

    Hi,
    How to write BDC, for Tcode KP06, How to handle the table control in that Tcode.
    or any other way to upload data for this Tcode.
    Regards
    Manohar

    Hi,
    check the sample code for transaction ME51 and ME21.
    PARAMETERS:
      p_fname TYPE ibipparms-path.
    *" Data declarations...................................................
    Work variables                                                      *
    DATA:
      fs_bdc TYPE bdcdata,
      fs_msg TYPE bdcmsgcoll.
    Internal table to hold bdc data                                     *
    DATA:
         t_bdc LIKE
      STANDARD TABLE
            OF fs_bdc.
    Internal table to hold bdcmessage data                              *
    DATA:
         t_msg LIKE
      STANDARD TABLE
            OF fs_msg.
    DATA:
      w_string(50)  TYPE c,
      w_string1(19) TYPE c,
      w_message(72) TYPE c,
      w_num         TYPE i VALUE 1,
      w_num1        TYPE i.
    *" Type declarations...................................................
    Type declaration of the structure to hold  header data              *
    DATA:
      BEGIN OF t_header  OCCURS 0,
        ftype      TYPE c,
        doctype(10) TYPE c,
        acctcat(4) TYPE c,
        date(10)    TYPE c,
        plant(4)   TYPE n,
        text(10)   TYPE c,
        qty(5)     TYPE n,
        units(5)   TYPE c,
        pgrp(3)    TYPE n,
        mgrp(3)    TYPE n,
        price(2)   TYPE n,
       gacct(6)   TYPE n,
        cost(4)    TYPE n,
      END OF t_header.
                          START-OF-SELECTION EVENT                      *
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_fname.
      CALL FUNCTION 'F4_FILENAME'
       EXPORTING
         program_name        = syst-cprog
      DYNPRO_NUMBER       = SYST-DYNNR
      FIELD_NAME          = ' '
       IMPORTING
         file_name           = p_fname
    START-OF-SELECTION.
      CALL FUNCTION 'GUI_UPLOAD'
        EXPORTING
          filename                      = 'c:\temp\item2.txt'
      FILETYPE                      = 'ASC'
         has_field_separator           = 'X'
        TABLES
          data_tab                      = t_header
       EXCEPTIONS
         file_open_error               = 1
         file_read_error               = 2
         no_batch                      = 3
         gui_refuse_filetransfer       = 4
         invalid_type                  = 5
         no_authority                  = 6
         unknown_error                 = 7
         bad_data_format               = 8
         header_not_allowed            = 9
         separator_not_allowed         = 10
         header_too_long               = 11
         unknown_dp_error              = 12
         access_denied                 = 13
         dp_out_of_memory              = 14
         disk_full                     = 15
         dp_timeout                    = 16
         OTHERS                        = 17
      IF sy-subrc <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.                                 " IF SY-SUBRC <> 0
      LOOP AT t_header WHERE ftype = 'H'..
        CLEAR fs_msg.
        IF t_header-ftype = 'H'.
          PERFORM bdc_program USING 'SAPMM06B' '0100'.
          PERFORM bdc_field   USING 'eban-BSART' t_header-doctype.
          PERFORM bdc_field   USING 'eban-KNTTP' t_header-acctcat.
          PERFORM bdc_field   USING 'RM06B-EEIND' t_header-date.
          PERFORM bdc_field   USING 'eban-WERKS' t_header-plant.
          PERFORM bdc_field   USING 'BDC_OKCODE' 'AB'.
        ENDIF.
       IF t_header-ftype = 'I'.
        LOOP AT t_header WHERE ftype = 'I'.
          PERFORM bdc_program USING 'SAPMM06B' '0106'.
          w_string = 'EBAN-TXZ01(01)'.
          w_string+12(1) = w_num.
          PERFORM bdc_field   USING w_string t_header-text.
          w_string = 'EBAN-MENGE(01)'.
          w_string+12(1) = w_num.
          PERFORM bdc_field   USING w_string t_header-qty.
          w_string = 'EBAN-MEINS(01)'.
          w_string+12(1) = w_num.
          PERFORM bdc_field   USING w_string t_header-units.
          w_string = 'EBAN-EKGRP(01)'.
          w_string+12(1) = w_num.
          PERFORM bdc_field   USING w_string t_header-pgrp.
          w_string = 'EBAN-MATKL(01)'.
          w_string+12(1) = w_num.
          PERFORM bdc_field   USING w_string t_header-mgrp.
          PERFORM bdc_field   USING 'BDC_OKCODE' '=KN'.
          w_num = w_num + 1.
          PERFORM bdc_program USING 'SAPMM06B' '0102'.
          PERFORM bdc_field   USING 'EBAN-preis' t_header-price.
          PERFORM bdc_field   USING 'BDC_OKCODE' '=KN'.
          PERFORM bdc_program USING 'SAPMM06B' '0505'.
          PERFORM bdc_field   USING 'BDC_OKCODE' '=KWE'.
          PERFORM bdc_program USING 'SAPlkacb' '0002'.
       PERFORM bdc_field   USING 'EBAN-sakto' t_header-gacct.
          PERFORM bdc_field   USING 'cobl-kostl' t_header-cost.
          PERFORM bdc_field   USING 'BDC_OKCODE' '=ENTE'.
         PERFORM bdc_program USING 'SAPMM06B' '0102'.
         PERFORM bdc_field   USING 'BDC_OKCODE' '/00'.
             ENDIF.
        ENDLOOP.
      ENDLOOP.
      PERFORM bdc_program USING 'SAPMM06B' '0106'.
      PERFORM bdc_field   USING 'BDC_OKCODE' 'BU'.
         PERFORM BDC_PROGRAM USING 'SAPMM06E' '100'.
    *PERFORM BDC_FIELD USING 'BDC_OKCODE' 'BACK'.
      CALL TRANSACTION 'ME51' USING t_bdc MODE 'N' MESSAGES INTO t_msg.
      LOOP AT t_msg INTO fs_msg.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            id        = fs_msg-msgid
            lang      = sy-langu
            no        = fs_msg-msgnr
            v1        = fs_msg-msgv1
            v2        = fs_msg-msgv2
            v3        = fs_msg-msgv3
            v4        = fs_msg-msgv4
          IMPORTING
            msg       = w_message
          EXCEPTIONS
            not_found = 1
            OTHERS    = 2.
           WRITE:
             / w_message.
      ENDLOOP.
      CLEAR t_bdc[].
      PERFORM bdc_program USING 'SAPMM06E' '0100'.
      PERFORM bdc_field   USING 'EKKO-LIFNR' '1000'.
      PERFORM bdc_field   USING 'EKKO-EKORG' '1000'.
      PERFORM bdc_field   USING 'EKKO-EKGRP' '100'.
      PERFORM bdc_field   USING 'BDC_OKCODE' 'BS'.
      PERFORM bdc_program USING 'SAPMM06E' '0501'.
      PERFORM bdc_field   USING 'EKET-BANFN' fs_msg-msgv1.
      PERFORM bdc_field   USING 'BDC_OKCODE' '=KOPF'.
      PERFORM bdc_program USING 'SAPMM06E' '0125'.
      PERFORM bdc_field   USING 'BDC_OKCODE' 'MALL'.
      PERFORM bdc_program USING 'SAPMM06E' '0125'.
      PERFORM bdc_field   USING 'BDC_OKCODE' 'REFH'.
      PERFORM bdc_program USING 'SAPMM06E' '0504'.
      PERFORM bdc_field   USING 'BDC_OKCODE' '=ENTE'.
      PERFORM bdc_program USING 'SAPMM06E' '0111'.
      PERFORM bdc_field   USING 'BDC_OKCODE' '=NEXP'.
    *perform bdc_program using 'SAPLSPO1' '0300'.
    *PERFORM BDC_FIELD   USING 'BDC_OKCODE' 'YES'.
      PERFORM bdc_program USING 'SAPMM06E' '0504'.
      PERFORM bdc_field   USING 'BDC_OKCODE' '=ENTE'.
      PERFORM bdc_program USING 'SAPMM06E' '0111'.
      PERFORM bdc_field   USING 'BDC_OKCODE' '=NEXP'.
    *perform bdc_program using 'SAPMM06E' '0504'.
    *PERFORM BDC_FIELD   USING 'BDC_OKCODE' '=ENTE'.
    *perform bdc_program using 'SAPMM06E' '0111'.
    *PERFORM BDC_FIELD   USING 'BDC_OKCODE' '=NEXP'.
    perform bdc_program using 'SAPMM06E' '0504'.
    *PERFORM BDC_FIELD   USING 'BDC_OKCODE' '=ENTE'.
    perform bdc_program using 'SAPMM06E' '0504'.
    *PERFORM BDC_FIELD   USING 'BDC_OKCODE' '=ENTE'.
    *perform bdc_program using 'SAPMM06E' '0111'.
    *PERFORM BDC_FIELD   USING 'BDC_OKCODE' '=NEXP'.
      PERFORM bdc_program USING 'SAPMM06E' '0120'.
      PERFORM bdc_field   USING 'BDC_OKCODE' 'BU'.
      CALL TRANSACTION 'ME21' USING t_bdc MODE 'N' MESSAGES INTO t_msg
      LOOP AT t_msg INTO fs_msg.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            id        = fs_msg-msgid
            lang      = sy-langu
            no        = fs_msg-msgnr
            v1        = fs_msg-msgv1
            v2        = fs_msg-msgv2
            v3        = fs_msg-msgv3
            v4        = fs_msg-msgv4
          IMPORTING
            msg       = w_message
          EXCEPTIONS
            not_found = 1
            OTHERS    = 2.
           WRITE:
             / W_message.
      ENDLOOP.                             " LOOP T_MSG
      CLEAR t_bdc[].
      PERFORM bdc_program USING 'SAPMM06E' '0105'.
      PERFORM bdc_field   USING 'RM06E-BSTNR' fs_msg-msgv2.
      PERFORM bdc_field   USING 'BDC_OKCODE' 'AB'.
      w_num1 = w_num - 1.
      DO w_num1 TIMES.
        w_string1 = 'RM06E-TCSELFLAG(00)'.
        w_string1+17(1) = w_num1.
        PERFORM bdc_program USING 'SAPMM06E' '0120'.
        PERFORM bdc_field   USING w_string1 'X'.
        PERFORM bdc_field   USING 'BDC_OKCODE' 'DL'.
        w_num1 = w_num1 - 1.
      ENDDO.                               " DO W_NUM1
      PERFORM bdc_program USING 'SAPMM06E' '0120'.
      PERFORM bdc_field   USING 'BDC_OKCODE' 'BU'.
      CALL TRANSACTION 'ME22' USING t_bdc MODE 'A' MESSAGES INTO t_msg.
      LOOP AT t_msg INTO fs_msg.
        CALL FUNCTION 'FORMAT_MESSAGE'
          EXPORTING
            id        = fs_msg-msgid
            lang      = sy-langu
            no        = fs_msg-msgnr
            v1        = fs_msg-msgv1
            v2        = fs_msg-msgv2
            v3        = fs_msg-msgv3
            v4        = fs_msg-msgv4
          IMPORTING
            msg       = w_message
          EXCEPTIONS
            not_found = 1
            OTHERS    = 2.
        WRITE:
          / w_message.
      ENDLOOP.                             " LOOP T_MSG
    *&      Form  bdc_program
    This subroutine gives screenname and screen number                 *
    There are no interface parameters to be passed to this subroutine. *
    FORM bdc_program  USING    value(p_screen)
                               value(p_num).
      CLEAR fs_bdc.
      fs_bdc-program = p_screen.
      fs_bdc-dynpro = p_num.
      fs_bdc-dynbegin = 'X'.
      APPEND fs_bdc TO t_bdc.
    ENDFORM.                               " FORM BDC_PROGRAM
    *&      Form  BDC_FIELD
    This subroutine gives the field name and field value               *
    There are no interface parameters to be passed to this subroutine. *
    FORM bdc_field  USING    value(p_name)
                             value(p_value).
      CLEAR fs_bdc.
      fs_bdc-fnam = p_name.
      fs_bdc-fval = p_value.
      APPEND fs_bdc TO t_bdc.
    ENDFORM.                               " FORM BDC_FIELD
    Regards,
    jaya

  • How  to write code for font family using swing?

    how to write code for font family using swing?
    i tried this code.but i got only font styles.but i need font family.observ this code
    import java.awt.*;
    import java.awt.event.*;
    public class fontSelect extends java.awt.Dialog implements AdjustmentListener, ItemListener, TextListener, ActionListener {
    public Font selectedFont; //to get result
    public boolean isSelected = false;
    public Color selectedBackground, selectedForeground;
         public fontSelect(Frame parent, boolean modal) {
              super(parent, modal);
         String fntName[] = getToolkit().getFontList();
    GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    String[] names = ge.getAvailableFontFamilyNames();
              //{{INIT_CONTROLS
              setLayout(null);
              setVisible(false);
    //setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
              setSize(insets().left + insets().right + 380,insets().top + insets().bottom + 282);
              setBackground(java.awt.Color.lightGray);
    fontList = new java.awt.Choice();
              //fontList = new java.awt.List(0,false);
              add(fontList);
              fontList.setBounds(insets().left +25,insets().top + 50,137,144);
              //label1 = new java.awt.Label("Example:-");
              //label1.setBounds(insets().left + 220,insets().top + 36,84,30);
              //add(label1);
              exampleText = new java.awt.TextField();
              //exampleText.setText("sample string ");
              //exampleText.setBounds(insets().left + 40,insets().top + 50,84,21);
              //add(exampleText);
              label2 = new java.awt.Label("Font Family:-");
              label2.setBounds(insets().left + 25,insets().top + 30,70,19);
              add(label2);
              isBold = new java.awt.Checkbox("Bold");
              isBold.setBounds(insets().left + 320,insets().top + 90,60,18);
              isBold.setFont(new Font("Times New Roman", Font.BOLD, 12));
              add(isBold);
              isItalic = new java.awt.Checkbox("Italic");
              isItalic.setBounds(insets().left + 250,insets().top + 90,48,17);
              isItalic.setFont(new Font("Times New Roman", Font.ITALIC, 12));
              add(isItalic);
              showFont = new java.awt.Label("samplestring ",Label.CENTER);
              showFont.setBounds(insets().left + 240,insets().top +50,120,30);
              showFont.setBackground(java.awt.Color.white);
              add(showFont);
    label11 = new java.awt.Label("Size:-");
              label11.setBounds(insets().left + 290,insets().top + 120,70,19);
              add(label11);
              fontSize = new java.awt.Choice();
    add(fontSize);
              //label11 = new java.awt.Label("Example string");
              fontSize.setBounds(insets().left + 290,insets().top + 140,60,23);
              fontSize.setBackground(java.awt.Color.white);
              btnSelect = new java.awt.Button();
              btnSelect.setLabel("Select");
              btnSelect.setBounds(insets().left + 280,insets().top + 190,87,24);
              add(btnSelect);
              btnCancel = new java.awt.Button();
              btnCancel.setLabel("Cancel");
              btnCancel.setBounds(insets().left + 280,insets().top + 230,91,24);
              add(btnCancel);
              label3 = new java.awt.Label("Background:-");
              label3.setBounds(insets().left + 24,insets().top + 90,94,18);
              add(label3);
              rBackground = new java.awt.Scrollbar(Scrollbar.HORIZONTAL,255,0,0,255);
              rBackground.setBounds(insets().left + 24,insets().top +110 ,197,21);
              add(rBackground);
              gBackground = new java.awt.Scrollbar(Scrollbar.HORIZONTAL,255,0,0,255);
              gBackground.setBounds(insets().left + 24,insets().top + 135,197,21);
              add(gBackground);
              bBackground = new java.awt.Scrollbar(Scrollbar.HORIZONTAL,255,0,0,255);
              bBackground.setBounds(insets().left + 24,insets().top + 160,197,21);
              add(bBackground);
              label4 = new java.awt.Label("R");
              label4.setBounds(insets().left + 12,insets().top + 110,12,18);
              label4.setFont(new Font("Times New Roman", Font.BOLD, 12));
              label4.setForeground(java.awt.Color.red);
              add(label4);
              label5 = new java.awt.Label("G");
              label5.setBounds(insets().left + 12,insets().top + 135,12,18);
              label5.setFont(new Font("Times New Roman", Font.BOLD, 12));
              label5.setForeground(new Color(-16744448));
              add(label5);
              label6 = new java.awt.Label("B");
              label6.setBounds(insets().left + 12,insets().top + 160,12,18);
              label6.setFont(new Font("Times New Roman", Font.BOLD, 12));
              label6.setForeground(java.awt.Color.blue);
              add(label6);
              rBackValue = new java.awt.Label("255");
              rBackValue.setBounds(insets().left + 225,insets().top + 110,24,12);
              rBackValue.setFont(new Font("Times New Roman", Font.BOLD, 12));
              rBackValue.setForeground(java.awt.Color.red);
              add(rBackValue);
              gBackValue = new java.awt.Label("255");
              gBackValue.setBounds(insets().left + 225,insets().top + 135,24,12);
              gBackValue.setFont(new Font("Times New Roman", Font.BOLD, 12));
              gBackValue.setForeground(new Color(-16744384));
              add(gBackValue);
              bBackValue = new java.awt.Label("255");
              bBackValue.setBounds(insets().left + 225,insets().top + 160,24,12);
              bBackValue.setFont(new Font("Times New Roman", Font.BOLD, 12));
              bBackValue.setForeground(java.awt.Color.blue);
              add(bBackValue);
              label7 = new java.awt.Label("Foreground:-");
              label7.setBounds(insets().left + 20,insets().top + 185,94,18);
              add(label7);
              rForeground = new java.awt.Scrollbar(Scrollbar.HORIZONTAL,0,0,0,255);
              rForeground.setBounds(insets().left + 20,insets().top + 205,197,21);
              add(rForeground);
              gForeground = new java.awt.Scrollbar(Scrollbar.HORIZONTAL,0,0,0,255);
              gForeground.setBounds(insets().left + 20,insets().top + 230,197,21);
              add(gForeground);
              bForeground = new java.awt.Scrollbar(Scrollbar.HORIZONTAL,0,0,0,255);
              bForeground.setBounds(insets().left + 20,insets().top + 255,197,21);
              add(bForeground);
              label8 = new java.awt.Label("R");
              label8.setBounds(insets().left + 10,insets().top + 205,12,18);
              label8.setFont(new Font("Times New Roman", Font.BOLD, 12));
              label8.setForeground(java.awt.Color.red);
              add(label8);
              label9 = new java.awt.Label("G");
              label9.setBounds(insets().left + 10,insets().top + 230,12,18);
              label9.setFont(new Font("Times New Roman", Font.BOLD, 12));
              label9.setForeground(new Color(-16744448));
              add(label9);
              label10 = new java.awt.Label("B");
              label10.setBounds(insets().left + 10,insets().top + 255,12,18);
              label10.setFont(new Font("Times New Roman", Font.BOLD, 12));
              label10.setForeground(java.awt.Color.blue);
              add(label10);
              rForeValue = new java.awt.Label("255");
              rForeValue.setBounds(insets().left + 220,insets().top + 205,24,12);
              rForeValue.setFont(new Font("Times New Roman", Font.BOLD, 12));
              rForeValue.setForeground(java.awt.Color.red);
              add(rForeValue);
              gForeValue = new java.awt.Label("255");
              gForeValue.setBounds(insets().left + 220,insets().top + 230,24,12);
              gForeValue.setFont(new Font("Times New Roman", Font.BOLD, 12));
              gForeValue.setForeground(new Color(-16744384));
              add(gForeValue);
              bForeValue = new java.awt.Label("255");
              bForeValue.setBounds(insets().left + 220,insets().top + 255,24,12);
              bForeValue.setFont(new Font("Times New Roman", Font.BOLD, 12));
              bForeValue.setForeground(java.awt.Color.blue);
              add(bForeValue);
              setTitle("Choosing font");
              //{{REGISTER_LISTENERS
              exampleText.addTextListener(this);
              btnSelect.addActionListener(this);
              btnCancel.addActionListener(this);
              isBold.addItemListener(this);
              fontList.addItemListener(this);
              isItalic.addItemListener(this);
              fontSize.addItemListener(this);
              rBackground.addAdjustmentListener(this);
              gBackground.addAdjustmentListener(this);
              bBackground.addAdjustmentListener(this);
              rForeground.addAdjustmentListener(this);
              gForeground.addAdjustmentListener(this);
              bForeground.addAdjustmentListener(this);
    for (int i = 0; i < (int)fntName.length; i++)
    fontList.addItem(fntName);
              showFont.setFont(new Font(fntName[0], Font.PLAIN, 12));
    // GraphicsEnvironment ge = GraphicsEnvironment.getLocalGraphicsEnvironment();
    //String[] names = ge.getAvailableFontFamilyNames();
    for ( int i=0; i<names.length; i++ )
    System.out.println( names[i] );
              selectedBackground = showFont.getBackground();
              selectedForeground = showFont.getForeground();
              int i = 8;
              do {
                   fontSize.addItem(""+i);
                   if (i<=30) i+=2;
                   else if (i<=70) i+=4;
                   else i+=8;
              } while (i<150);
              try {
                   fontSize.select(2);
              } catch (IllegalArgumentException e) { }
         //{{DECLARE_CONTROLS
         //java.awt.List fontList;
    java.awt.Label label11;
         java.awt.Label label1;
         java.awt.TextField exampleText;
         java.awt.Label label2;
         java.awt.Checkbox isBold;
         java.awt.Checkbox isItalic;
         java.awt.Label showFont;
         java.awt.Choice fontSize;
    java.awt.Choice fontList;
         java.awt.Button btnSelect;
         java.awt.Button btnCancel;
         java.awt.Label label3;
         java.awt.Scrollbar rBackground;
         java.awt.Scrollbar gBackground;
         java.awt.Scrollbar bBackground;
         java.awt.Label label4;
         java.awt.Label label5;
         java.awt.Label label6;
         java.awt.Label rBackValue;
         java.awt.Label gBackValue;
         java.awt.Label bBackValue;
         java.awt.Label label7;
         java.awt.Scrollbar rForeground;
         java.awt.Scrollbar gForeground;
         java.awt.Scrollbar bForeground;
         java.awt.Label label8;
         java.awt.Label label9;
         java.awt.Label label10;
         java.awt.Label rForeValue;
         java.awt.Label gForeValue;
         java.awt.Label bForeValue;
    private Font constructFont() {
    int l;
    try {
    l = Integer.parseInt(fontSize.getSelectedItem());
    } catch (NumberFormatException e) {l = 12;}
    selectedFont = new Font(fontList.getItem(fontList.getSelectedIndex()>=0?fontList.getSelectedIndex():0 ), (isBold.getState()?Font.BOLD:0)+(isItalic.getState()?Font.ITALIC:0), l);
    selectedBackground = new Color(rBackground.getValue(), gBackground.getValue(), bBackground.getValue());
    selectedForeground = new Color(rForeground.getValue(), gForeground.getValue(), bForeground.getValue());
    return (selectedFont);
         public void textValueChanged(java.awt.event.TextEvent event) {
              Object object = event.getSource();
              if (object == exampleText) showFont.setText(exampleText.getText());
         public void actionPerformed(java.awt.event.ActionEvent event) {
              Object object = event.getSource();
              if (object == btnSelect) {
    isSelected = true;
    selectedFont = constructFont();
         dispose();
    } else if (object == btnCancel) {
         selectedFont = null;
    selectedBackground = null;
    selectedForeground = null;
    dispose();
         public void itemStateChanged(java.awt.event.ItemEvent event) {
              Object object = event.getSource();
              if (object == isBold) showFont.setFont(constructFont());
              else if (object == fontList) showFont.setFont(constructFont());
              else if (object == isItalic) showFont.setFont(constructFont());
              else if (object == fontSize) showFont.setFont(constructFont());
         public void adjustmentValueChanged(java.awt.event.AdjustmentEvent event)
              Object object = event.getSource();
    constructFont();
    showFont.setBackground(new Color(rBackground.getValue(), gBackground.getValue(), bBackground.getValue()));
    showFont.setForeground(new Color(rForeground.getValue(), gForeground.getValue(), bForeground.getValue()));
    if (object == rBackground) rBackValue.setText(""+rBackground.getValue());
              else if (object == gBackground) gBackValue.setText(""+gBackground.getValue());
              else if (object == bBackground) bBackValue.setText(""+bBackground.getValue());
              else if (object == rForeground) rForeValue.setText(""+rForeground.getValue());
              else if (object == gForeground) gForeValue.setText(""+gForeground.getValue());
              else if (object == bForeground) bForeValue.setText(""+bForeground.getValue());

    Okay, that's better. It would have been nice if the code was formatted, and if there was about 20% of that code. (Your example could have been just one JLabel and nothing else, for example.)
    Anyway, now that you've posted that code, what is your question about it? I see you are calling a "getAvailableFontFamilyNames" method; do you have a question about that? If so, what is the question?

  • How to write TableCellEditor for the following TableCellRender

    I didn't know how to write the TableCellEditor for a TableCellRender which returns a JPanel contains JTextField and JButton.
    I hope u give an answer or guide me to a good topics.
    Thank u in advanced.
    The code is the following:
    //NewCell.java
    import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;
    public class NewCell extends JPanel {
    public NewCell() {
         setLayout(new BorderLayout());
         JTextField text = new JTextField();
         JButton button = new JButton("...");
         add(text,BorderLayout.CENTER);
         add(button,BorderLayout.EAST);
    //PanelRenderer.java
    import java.awt.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class PanelRenderer extends NewCell implements TableCellRenderer {
    public PanelRenderer() {
    setOpaque(true);
    public Component getTableCellRendererComponent(JTable table, Object value,
    boolean isSelected, boolean hasFocus, int row, int column) {
    if (row == 0)
         return this;
    else return table.getEditorComponent();
    //JPanelTableExample
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.table.*;
    public class JPanelTableExample extends JFrame {
    public JPanelTableExample(){
    super( "JPanelTable Example" );
    DefaultTableModel dm = new DefaultTableModel();
    dm.setDataVector(new Object[][]{{"panel 1","foo"},
    {"no panel","bar"}},
    new Object[]{"Panel","String"});
    JTable table = new JTable(dm);
    table.getColumn("Panel").setCellRenderer(new PanelRenderer());
    // table.getColumn("Panel").setCellEditor(new PanelEditor());
    JScrollPane scroll = new JScrollPane(table);
    getContentPane().add( scroll );
    setSize( 400, 100 );
    setVisible(true);
    public static void main(String[] args) {
    JPanelTableExample frame = new JPanelTableExample();
    frame.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent e) {
    System.exit(0);

    Hello sir,
    By writing this code it will automatically pick the amount of condition type JASS.
    No it won't work .
    Please tell me the right solution

  • How to customize events, execute stored procedures using JSF and ADF BC

    As a java beginner, I started with developing simple web application using JSF and ADF business component through visual and declarative approach. I need to know how to customize events, execute stored procedures, invoke functions on triggering events associated with rich controls. for eg. how to write customized functions on button click or checkbox click events to achieve business requirement and can be modified whenever required.
    Edited by: 792068 on Aug 31, 2010 9:40 PM

    Which business layer is prefered to create interactive data model: 1. ADF business components or 2. Enterprise JavaBeans using Java persistance API (JPA) or 3. Toplink 4. Portlets
    which minimizes writing low level codes and how much OOPS knowledge is required for creating above business layer binding data to viewcontroller layer?

  • How to write Error message for select options?

    Hi
    i have this select option statement
    SELECT-OPTIONS: s_fevor FOR afko-fevor.
    how to write error message for this?
    Regards
    Smitha

    Error messages are displayed for Select-options mostly on two conditions:
    1) You needs to check wether a value is entered or not its done by:
    a)
    Select-options:SELECT-OPTIONS: s_fevor FOR afko-fevor Obligatory.
       In this case error message is automatically throwed by system.
    b) You can do this in Selection Screen events.
    Ex:
    AT SELECTION-SCREEN./AT SELECTION-SCREEN ON S_FEVOR.
    IF S_FEVOR-LOW IS INITIAL.
    MESSAGE 'XXXXX' TYPE 'E'.
    ENDIF.
    2) You need to Validate the entered value:
    You can do this in Selection Screen events.
    Ex:
    AT SELECTION-SCREEN./AT SELECTION-SCREEN ON S_FEVOR.
    SELECT FEVOR
                 FROM AFKO
                 INTO AFKO-FEVOR
                 UP TO 1 ROWS
    ENDSELECT.        
    IF SY-SUBRC NE 0.
    MESSAGE 'XXXXX' TYPE 'E'.
    ENDIF.
    Regards,
    Gurpreet

Maybe you are looking for