Related JtextField Event Handling
Hi,
In the JtextField whener I pressed the ALT + TAB the focus lost of the
JtexrField is called.After that again pressed the Tab in the same Jtextfield the KeyListener is not fired.Is there any possibility to fire the
Event whener we pressed the Tab second time.
Regards,
Naresh.
So, you press ALT+TAB in a JTextField and it loses focus.
Do you give focus back to the JTextField before you press Tab again? That
could be one problem. The second is that Tab is a focus traversal key, and
so the focus manager is going to process that key before the component
sees it. You could remove Tab as a focus traversal key, and that would allow
the component to receive it, but I'm not sure you want to do that.
Similar Messages
-
JChecjBox and JTextField Event Handling in JTable
Hi,
I am creating a dynamic Jtable from data in Database. My table has x num of rows and 5 cols. I have 2 editable columns in Table. one is of type checkbox and other is textfield. I have also created a CustomTableModel which extends DefaultTableModel. My Question is How to trap an even on JCheckBox and JTextField when User changes the data in the table. I want trap the event, read the new data and save it to the database.
Please help me with this problem.
I am fairly new at JTable..Please help me. Do i need to create customeCellEditor??
Thank you.Thank you for your help. From TableChanged event I can find out that table has been updated. But how do i know which rows were updated? I mean How do i know which checkbox was checked/unchecked, or JTextfield text was changed? I need to read them one by one and compare with previous data. TO do that Do i need customCellEditor? Editable Checkbox is in first col of table and Editable Jtextfield is in 4th col. Number of rows vary depending on my resultset from DB.
Please help me.
Thank you in Advance. -
Question related to PO Event Handler
Hi Experts
I am facing issues related to PO Header Event Handler:
1. When I make change to Statistical Delivery Date under Delivery Schedule tab in ECC, The PO Header EH is getting deleted in EM. May I know the reason behind this? Please suggest how to avoid this.
2. When I am deleting one of PO Items, the PO Header EH is also getting deleted in EM. When I undelete the PO Item, my PO Item EH is active again but PO Header Eh is still in deleted status. Please suggest how to correct this.
I really appreciate your quick answers to this.
Regards
RaviHi Steffen
When we tried to analyse through debugging, for the first issue, we found that the standard application tables PURCHASE_ORDER_HEADER_NEW and PURCHASE_ORDER_HEADER_OLD delivered by SAP for BPT ESC_PURORD, are not having the value D for DeleteVal. column. When we have put this manually for testing purpose, the issues are resolved. But we do not know the impact of putting this value here as standard SAP did not deliver it that way.
When we observed tables of other BPT, this value D is there. Please throw some light on this before we go ahead and make changes.
Thanks
Ravi -
Event Handling Help needed please.
Hi,
I am writing a program to simulate a supermarket checkout. I have done the GUI and now i am trying to do the event handling. I have come up against a problem.
I have a JCombobox called prodList and i have added an string array to it called prods . I have also created 2 more arrays with numbers in them.
I want to write the code for if an item is selected from the combo box that the name from the array is shown in a textfield tf1, and also the price and stock no which correspond to the seclected item (both initialised in the other arrays) are also added to the textfield tf1.
I have started writng the code but i am really stuck. Could someone please help me with this please. The code i have done so far is as follows(just the event handling code shown)
public void ItemStateChange(ItemEvent ie){
if(ie.getItemSelected()== prodList)
changeOutput();
public void changeOutput()
if(ItemSelected ==0)
tf1.setText("You have selected" +a +b +c);
}Do you say this because i missed the d of ItemStateChanged ?
I have amended that but still i am getting the same errors class or enum expected. 4 of them relating to the itemStateChanged method.
i will post my whole code if it helps
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.util.Observer; //new
import java.util.Observable;//new
import javax.swing.BorderFactory;
import javax.swing.border.Border;
import javax.swing.border.TitledBorder;
public class MySuperMktPro
public MySuperMktPro()
CheckoutView Check1 = new CheckoutView(1,0,0);
CheckoutView Check2 = new CheckoutView(2,300,0);
CheckoutView Check3 = new CheckoutView(3,600,0);
CheckoutView Check4 = new CheckoutView(4,0,350);
CheckoutView Check5 = new CheckoutView(5,600,350);
OfficeView off111 = new OfficeView();
public static void main(String[] args) {
// TODO, add your application code
System.out.println("Starting My Supermarket Project...");
MySuperMktPro startup = new MySuperMktPro();
class CheckoutView implements ItemListener , ActionListener
private OfficeView off1;
private JFrame chk1;
private Container cont1;
private Dimension screensize,tempDim;
private JPanel pan1,pan2,pan3,pan4,pan5;
private JButton buyBut,prodCode;
private JButton purchase,cashBack,manual,remove,disCo;
private JButton but1,but2,finaLi1,but4,but5,but6;
private JTextArea tArea1,tArea2;
private JTextField tf1,tf2,tf3,list2;
private JComboBox prodList;
private JLabel lab1,lab2,lab3,lab4,lab5,lab6,lab7;
private int checkoutID; //New private int for all methods of this class
private int passedX,passedY;
private String prods[];
private JButton rb1,rb2,rb3,rb4;
private double price[];
private int code[];
public CheckoutView(int passedInteger,int passedX,int passedY)
checkoutID = passedInteger; //Store the int passed into the method
this.passedX = passedX;
this.passedY = passedY;
drawCheckoutGui();
public void drawCheckoutGui()
prods= new String[20];
prods[0] = "Beans";
prods[1] = "Eggs";
prods[2] = "bread";
prods[3] = "Jam";
prods[4] = "Butter";
prods[5] = "Cream";
prods[6] = "Sugar";
prods[7] = "Peas";
prods[8] = "Milk";
prods[9] = "Bacon";
prods[10] = "Spaghetti";
prods[11] = "Corn Flakes";
prods[12] = "Carrots";
prods[13] = "Oranges";
prods[14] = "Bananas";
prods[15] = "Snickers";
prods[16] = "Wine";
prods[17] = "Beer";
prods[18] = "Lager";
prods[19] = "Cheese";
for(i=0; i<prods.length;i++);
code = new int [20];
code[0] = 1;
code[1] = 2;
code[2] = 3;
code[3] = 4;
code[4] = 5;
code[5] = 6;
code[6] = 7;
code[7] = 8;
code[8] = 9;
code[9] = 10;
code[10] = 11;
code[11] = 12;
code[12] = 13;
code[13] = 14;
code[14] = 15;
code[15] = 16;
code[16] = 17;
code[17] = 18;
code[18] = 19;
code[19] = 20;
for(b=0; b<code.length; b++);
price = new double [20];
price[0] = 0.65;
price[1] = 0.84;
price[2] = 0.98;
price[3] = 0.75;
price[4] = 0.45;
price[5] = 0.65;
price[6] = 1.78;
price[7] = 1.14;
price[8] = 0.98;
price[9] = 0.99;
price[10] = 0.98;
price[11] = 0.65;
price[12] = 1.69;
price[13] = 2.99;
price[14] = 0.99;
price[15] = 2.68;
price[16] = 0.89;
price[17] = 5.99;
price[18] = 1.54;
price[19] = 2.99;
for(c=0; c<code.length; c++);
screensize = Toolkit.getDefaultToolkit().getScreenSize();
chk1 = new JFrame();
chk1.setTitle("Checkout #" + checkoutID); //Use the new stored int
chk1.setSize(300,350);
chk1.setLocation(passedX,passedY);
chk1.setLayout(new GridLayout(5,1));
//chk1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cont1 = chk1.getContentPane();
//chk1.setLayout(new BorderLayout());
pan1 = new JPanel();
pan2 = new JPanel();
pan3 = new JPanel();
pan4 = new JPanel();
pan5 = new JPanel();
//panel 1
pan1.setLayout(new FlowLayout());
pan1.setBackground(Color.black);
prodList = new JComboBox(prods);
prodList.setMaximumRowCount(2);
prodList.addItemListener(this);
but1 = new JButton("Buy");
but1.addActionListener(this);
lab1 = new JLabel("Products");
lab1.setForeground(Color.white);
lab1.setBorder(BorderFactory.createLineBorder(Color.white));
pan1.add(lab1);
pan1.add(prodList);
pan1.add(but1);
//panel 2
pan2 = new JPanel();
pan2.setLayout(new BorderLayout());
pan2.setBackground(Color.black);
lab3 = new JLabel(" Enter Product Code");
lab3.setForeground(Color.white);
tArea2 = new JTextArea(8,10);
tArea2.setBorder(BorderFactory.createLineBorder(Color.white));
lab5 = new JLabel(" Tesco's ");
lab5.setForeground(Color.white);
lab5.setBorder(BorderFactory.createLineBorder(Color.white));
lab6 = new JLabel("Checkout");
lab6.setForeground(Color.white);
lab6.setBorder(BorderFactory.createLineBorder(Color.white));
lab7 = new JLabel("You selected ");
lab7.setForeground(Color.cyan);
//lab7.setBorder(BorderFactory.createLineBorder(Color.white));
pan2.add(lab7,"North");
pan2.add(lab6,"East");
pan2.add(tArea2,"Center");
pan2.add(lab5,"West");
pan2.add(lab3,"South");
//panel 3
pan3 = new JPanel();
pan3.setLayout(new FlowLayout());
pan3.setBackground(Color.black);
manual = new JButton("Manual");
manual.addActionListener(this);
manual.setBorder(BorderFactory.createLineBorder(Color.white));
remove = new JButton("Remove");
remove.addActionListener(this);
remove.setBorder(BorderFactory.createLineBorder(Color.white));
tf1 = new JTextField(5);
pan3.add(manual);
pan3.add(tf1);
pan3.add(remove);
//panel 4
pan4 = new JPanel();
pan4.setLayout(new FlowLayout());
pan4.setBackground(Color.black);
finaLi1 = new JButton("Finalise");
// finaLi1.addActionListener(this);
cashBack = new JButton("Cashback");
JTextField list2 = new JTextField(5);
but4 = new JButton(" Sum Total");
but4.addActionListener(this);
but4.setBorder(BorderFactory.createLineBorder(Color.white));
cashBack.setBorder(BorderFactory.createLineBorder(Color.white));
pan4.add(cashBack);
pan4.add(list2);
pan4.add(but4);
//panel 5
pan5 = new JPanel();
pan5.setLayout(new GridLayout(2,3));
pan5.setBackground(Color.black);
disCo = new JButton("Discount");
disCo.addActionListener(this);
disCo.setBorder(BorderFactory.createLineBorder(Color.black));
but6 = new JButton("Finalise");
but6.addActionListener(this);
but6.setBorder(BorderFactory.createLineBorder(Color.black));
rb1 = new JButton("Cash");
rb1.addActionListener(this);
rb1.setBorder(BorderFactory.createLineBorder(Color.black));
rb2 = new JButton("Card");
rb2.addActionListener(this);
rb2.setBorder(BorderFactory.createLineBorder(Color.black));
rb3 = new JButton("Cheque");
rb3.addActionListener(this);
rb3.setBorder(BorderFactory.createLineBorder(Color.black));
rb4 = new JButton("Voucher");
rb4.addActionListener(this);
rb4.setBorder(BorderFactory.createLineBorder(Color.black));
pan5.add(disCo);
pan5.add(but6);
pan5.add(rb1);
pan5.add(rb2);
pan5.add(rb3);
pan5.add(rb4);
//add the panels to the container
cont1.add(pan1);
cont1.add(pan4);
cont1.add(pan2);
cont1.add(pan3);
cont1.add(pan5);
chk1.setContentPane(cont1);
chk1.setVisible(true);
class OfficeView
private OfficeView off111;
private JFrame offMod1;
private JPanel pane1;
private JButton refill;
private Container cont11;
private Dimension screensize;
private JTextField tf11,tf12;
public OfficeView()
drawOfficeGUI();
public void drawOfficeGUI()
screensize = Toolkit.getDefaultToolkit().getScreenSize();
offMod1 = new JFrame("Office Control");
int frameWidth = 300;
int frameHeight = 250;
offMod1.setSize(frameWidth,frameHeight);
offMod1.setLocation(300,350);
offMod1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
cont11 = offMod1.getContentPane();
pane1 = new JPanel();
pane1.setBackground(Color.cyan);
refill = new JButton("Refill");
tf11 = new JTextField(25);
tf12 = new JTextField(25);
pane1.add(tf11);
pane1.add(refill);
pane1.add(tf12);
cont11.add(pane1);
offMod1.setContentPane(cont11);
offMod1.setVisible(true);
public void ItemStateChanged(ItemEvent ie)
if(ie.getItemSelected()== prodList)
changeOutput();
public void changeOutput()
if(ItemSelected ==0)
tf1.setText("You have selected", +a +b +c);
}Message was edited by:
fowlergod09 -
Swing: when trying to get the values from a JTable inside an event handler
Hi,
I am trying to write a graphical interface to compute the Gauss Elimination procedure for solving linear systems. The class for computing the output of a linear system already works fine on console mode, but I am fighting a little bit to make it work with Swing.
I put two buttons (plus labels) and a JTextField . The buttons have the following role:
One of them gets the value from the JTextField and it will be used to the system dimension. The other should compute the solution. I also added a JTable so that the user can type the values in the screen.
So whenever the user hits the button Dimensiona the program should retrieve the values from the table cells and pass them to a 2D Array. However, the program throws a NullPointerException when I try to
do it. I have put the code for copying this Matrix inside a method and I call it from the inner class event handler.
I would thank you very much for the help.
Daniel V. Gomes
here goes the code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import AdvanceMath.*;
public class MathF2 extends JFrame {
private JTextField ArrayOfFields[];
private JTextField DimOfSis;
private JButton Calcular;
private JButton Ativar;
private JLabel label1;
private JLabel label2;
private Container container;
private int value;
private JTable DataTable;
private double[][] A;
private double[] B;
private boolean dimensionado = false;
private boolean podecalc = false;
public MathF2 (){
super("Math Calcs");
Container container = getContentPane();
container.setLayout( new FlowLayout(FlowLayout.CENTER) );
Calcular = new JButton("Resolver");
Calcular.setEnabled(false);
Ativar = new JButton("Dimensionar");
label1 = new JLabel("Clique no bot�o para resolver o sistema.");
label2 = new JLabel("Qual a ordem do sistema?");
DimOfSis = new JTextField(4);
DimOfSis.setText("0");
JTable DataTable = new JTable(10,10);
container.add(label2);
container.add(DimOfSis);
container.add(Ativar);
container.add(label1);
container.add(Calcular);
container.add(DataTable);
for ( int i = 0; i < 10 ; i ++ ){
for ( int j = 0 ; j < 10 ; j++) {
DataTable.setValueAt("0",i,j);
myHandler handler = new myHandler();
Calcular.addActionListener(handler);
Ativar.addActionListener(handler);
setSize( 500 , 500 );
setVisible( true );
public static void main ( String args[] ){
MathF2 application = new MathF2();
application.addWindowListener(
new WindowAdapter(){
public void windowClosing (WindowEvent event)
System.exit( 0 );
private class myHandler implements ActionListener {
public void actionPerformed ( ActionEvent event ){
if ( event.getSource()== Calcular ) {
if ( event.getSource()== Ativar ) {
//dimensiona a Matriz A
if (dimensionado == false) {
if (DimOfSis.getText()=="0") {
value = 2;
} else {
value = Integer.parseInt(DimOfSis.getText());
dimensionado = true;
Ativar.setEnabled(false);
System.out.println(value);
} else {
Ativar.setEnabled(false);
Calcular.setEnabled(true);
podecalc = true;
try {
InitValores( DataTable, value );
} catch (Exception e) {
System.out.println("Erro ao criar matriz" + e );
private class myHandler2 implements ItemListener {
public void itemStateChanged( ItemEvent event ){
private void InitValores( JTable table, int n ) {
A = new double[n][n];
B = new double[n];
javax.swing.table.TableModel model = table.getModel();
for ( int i = 0 ; i < n ; i++ ){
for (int j = 0 ; j < n ; j++ ){
Object temp1 = model.getValueAt(i,j);
String temp2 = String.valueOf(temp1);
A[i][j] = Double.parseDouble(temp2);What I did is set up a :
// This code will setup a listener for the table to handle a selection
players.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListSelectionModel rowSM = players.getSelectionModel();
rowSM.addListSelectionListener(new Delete_Player_row_Selection(this));
//Class will take the event and call a method inside the Delete_Player object.
class Delete_Player_row_Selection
implements javax.swing.event.ListSelectionListener
Delete_Player adaptee;
Delete_Player_row_Selection (Delete_Player temp)
adaptee = temp;
public void valueChanged (ListSelectionEvent listSelectionEvent)
adaptee.row_Selection(listSelectionEvent);
in the row_Selection function
if(ex.getValueIsAdjusting()) //To remove double selection
return;
ListSelectionModel lsm = (ListSelectionModel) ex.getSource();
if(lsm.isSelectionEmpty())
System.out.println("EMtpy");
else
int selected_row = lsm.getMinSelectionIndex();
ResultSetTableModel model = (ResultSetTableModel) players.getModel();
String name = (String) model.getValueAt(selected_row, 1);
Integer id = (Integer) model.getValueAt(selected_row, 3);
This is how I got info out of a table when the user selected it -
Would someone please help me. I am new to applet development and I get a compile error associated with the event handling in my first ever applet code as follows:
C:\j2sdk1.4.2_01\bin>javac trajectory_j.java
trajectory_j.java:248: illegal start of expression
private class Handler implements ActionListener {
^
trajectory_j.java:248: ';' expected
private class Handler implements ActionListener {
^
2 errors
de.
This is the code:
// trajectory Analysis Program: trajectory_j.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class trajectory_j extends JApplet implements ActionListener {
private JTextArea introductionArea, resultsArea;
private JLabel spanLabel, chordLabel,
thicknessLabel, massLabel, altitudeLabel, velocityLabel,
trajectory_angleLabel, time_incrementLabel, rotation_factorLabel,
calculationLabel, resultsLabel;
private JTextField spanField, chordField, thicknessField,
massField, altitudeField, velocityField, trajectory_angleField,
time_incrementField, rotation_factorField;
private JButton startButton, resetButton, contButton, termButton;
String introduction_string, span_string, chord_string, thickness_string, mass_string,
altitude_string, velocity_string, trajectory_angle_string,
time_increment_string, rotation_factor_string, results_string;
double span, chord, thickness, mass, altitude, velocity, trajectory_angle, time_increment,
rotation_factor, distance, velocity_fps, elapsed_time;
int status_a;
int status_b;
int status_c;
/* deletion of code segment a
span = 0;
chord = 0;
thickness = 0;
mass = 0;
altitude = 0;
velocity = 0;
trajectory_angle = 0;
time_increment = 0;
rotation_factor = 0;
distance = 0;
velocity_fps = 0;
elapsed_time = 0;
velocity_fps = 0;
elapsed_time = 0;
// create objects
public void init()
status_a = 0;
status_b = 0;
status_c = 0;
// create container & panel
Container container = getContentPane();
Panel panel = new Panel( new FlowLayout( FlowLayout.LEFT));
container.add( panel );
// set up vertical boxlayout
Box box = Box.createVerticalBox();
Box inputbox1 = Box.createHorizontalBox();
Box inputbox2 = Box.createHorizontalBox();
Box inputbox3 = Box.createHorizontalBox();
Box buttonbox = Box.createHorizontalBox();
introduction_string = "This is the introduction";
// set up introduction
introductionArea = new JTextArea( introduction_string, 10, 50 );
introductionArea.setEditable( false );
box.add( new JScrollPane( introductionArea ) );
box.add( Box.createVerticalStrut (10) );
box.add( inputbox1);
// set up span
spanLabel = new JLabel( "span (feet)" );
spanField = new JTextField(5 );
inputbox1.add( spanLabel );
inputbox1.add( spanField );
Dimension minSize = new Dimension(5, 15);
Dimension prefSize = new Dimension(5, 15);
Dimension maxSize = new Dimension(Short.MAX_VALUE, 15);
inputbox1.add(new Box.Filler(minSize, prefSize, maxSize));
// set up chord
chordLabel = new JLabel( "chord (feet)" );
chordField = new JTextField(5 );
inputbox1.add( chordLabel );
inputbox1.add( chordField );
inputbox1.add(new Box.Filler(minSize, prefSize, maxSize));
// set up thickness
thicknessLabel = new JLabel( "thickness (feet)" );
thicknessField = new JTextField(5 );
inputbox1.add( thicknessLabel );
inputbox1.add( thicknessField );
inputbox1.add(new Box.Filler(minSize, prefSize, maxSize));
// set up mass
massLabel = new JLabel( "mass (slugs)" );
massField = new JTextField(5);
inputbox1.add( massLabel );
inputbox1.add( massField );
box.add( Box.createVerticalStrut (10) );
box.add( inputbox2);
// set up altitude
altitudeLabel = new JLabel( "altitude (feet)");
altitudeField = new JTextField(5 );
inputbox2.add( altitudeLabel );
inputbox2.add( altitudeField );
inputbox2.add(new Box.Filler(minSize, prefSize, maxSize));
// set up velocity
velocityLabel = new JLabel( "velocity (Mach Number)");
velocityField = new JTextField(5);
inputbox2.add( velocityLabel );
inputbox2.add( velocityField );
inputbox2.add(new Box.Filler(minSize, prefSize, maxSize));
// set up trajectory_angle
trajectory_angleLabel = new JLabel( "trajectory angle ( -90 degrees <= trajectory angle <= 90 degrees )");
trajectory_angleField = new JTextField(5);
inputbox2.add( trajectory_angleLabel );
inputbox2.add( trajectory_angleField );
box.add( Box.createVerticalStrut (10) );
box.add( inputbox3);
Dimension minSizeF = new Dimension(70, 15);
Dimension prefSizeF = new Dimension(70, 15);
Dimension maxSizeF = new Dimension(Short.MAX_VALUE, 15);
inputbox3.add(new Box.Filler(minSizeF, prefSizeF, maxSizeF));
// set up time_increment
time_incrementLabel = new JLabel( "time increment (seconds)" );
time_incrementField = new JTextField(5);
inputbox3.add( time_incrementLabel );
inputbox3.add( time_incrementField );
inputbox3.add(new Box.Filler(minSizeF, prefSizeF, maxSizeF));
// set up rotation_factor
rotation_factorLabel = new JLabel( "rotation factor ( non-negative number)" );
rotation_factorField = new JTextField(5);
inputbox3.add( rotation_factorLabel );
inputbox3.add( rotation_factorField );
inputbox3.add(new Box.Filler(minSizeF, prefSizeF, maxSizeF));
box.add( Box.createVerticalStrut (10) );
box.add( buttonbox);
// set up start
startButton = new JButton( "START" );
buttonbox.add( startButton );
Dimension minSizeB = new Dimension(10, 30);
Dimension prefSizeB = new Dimension(10, 30);
Dimension maxSizeB = new Dimension(Short.MAX_VALUE, 30);
buttonbox.add(new Box.Filler(minSizeB, prefSizeB, maxSizeB));
// set up reset
resetButton = new JButton( "RESET" );
buttonbox.add( resetButton );
buttonbox.add(new Box.Filler(minSizeB, prefSizeB, maxSizeB));
// set up cont
contButton = new JButton( "CONTINUE" );
buttonbox.add( contButton );
buttonbox.add(new Box.Filler(minSizeB, prefSizeB, maxSizeB));
// set up term
termButton = new JButton( "END" );
buttonbox.add( termButton );
box.add( Box.createVerticalStrut (10) );
// set up results
resultsArea = new JTextArea( results_string, 10, 50 );
resultsArea.setEditable( false );
box.add( new JScrollPane( resultsArea ) );
// add box to panel
panel.add( box );
// register event handlers
Handler handler = new Handler();
spanField.addActionListener( handler );
chordField.addActionListener( handler );
thicknessField.addActionListener( handler );
massField.addActionListener( handler );
altitudeField.addActionListener( handler );
velocityField.addActionListener( handler );
trajectory_angleField.addActionListener( handler );
time_incrementField.addActionListener( handler );
rotation_factorField.addActionListener( handler );
startButton.addActionListener( handler );
resetButton.addActionListener( handler );
contButton.addActionListener( handler );
termButton.addActionListener( handler );
// private inner class for event handling
private class Handler implements ActionListener {
// process handler events
public void actionPerformed( ActionEvent event )
// process resetButton event
if ( event.getSource() == resetButton )
reset();
// process contButton event
if ( event.getSource() == contButton )
cont();
// process endButton event
if ( event.getSource() == termButton )
// process span event
if( event.getSource() == spanField ) {
span = Double.parseDouble( event.getActionCommand() );
spanField.setText( span_string );
status_b++;
// process chord event
if( event.getSource() == spanField ) {
span = Double.parseDouble( event.getActionCommand() );
spanField.setText( chord_string );
status_b++;
// process thickness event
if( event.getSource() == thicknessField ) {
thickness = Double.parseDouble( event.getActionCommand() );
spanField.setText( thickness_string );
status_b++;
// process mass event
if( event.getSource() == massField ) {
mass = Double.parseDouble( event.getActionCommand() );
spanField.setText( mass_string );
status_b++;
// process altitude event
if( event.getSource() == altitudeField ) {
altitude = Double.parseDouble( event.getActionCommand() );
spanField.setText( altitude_string );
status_b++;
// process velocity event
if( event.getSource() == velocityField ) {
velocity = Double.parseDouble( event.getActionCommand() );
spanField.setText( velocity_string );
status_b++;
// process trajectory_angle event
if( event.getSource() == trajectory_angleField ) {
trajectory_angle = Double.parseDouble( event.getActionCommand() );
spanField.setText( trajectory_angle_string );
status_b++;
// process time_increment event
if( event.getSource() == time_incrementField ) {
time_increment = Double.parseDouble( event.getActionCommand() );
spanField.setText( time_increment_string );
status_b++;
// process rotation_factor event
if( event.getSource() == rotation_factorField ) {
rotation_factor = Double.parseDouble( event.getActionCommand() );
spanField.setText( rotation_factor_string );
status_b++;
// process startButton event
if ( event.getSource() == startButton && status_b == 9 ) {
status_c = 1;
} // end method event handler
} // end Handler class
} // end method init
public void strtb()
/* deletion of code segment 1
startButton.addActionListener(
new ActionListener() { // anonymous inner class
// set text in resultsArea
public void actionPerformed( ActionEvent event )
if( status_c == 1 ){
calculate();
results();
resultsArea.setText( results() );
/* deletion of code segment 2
}// end method actionPerformed1
} // end anonymous inner class1
); // end call to addActionlistener1
} // end method strtb
public void reset()
/* deletion of code segment 3
resetButton.addActionListener(
new ActionListener() { // anonymous inner class
// set text in resultsArea
public void actionPerformed( ActionEvent event )
span_string = "";
chord_string = "";
thickness_string = "";
mass_string = "";
altitude_string = "";
velocity_string = "";
trajectory_angle_string = "";
time_increment_string = "";
rotation_factor_string = "";
results_string = "";
spanField.setText( span_string );
chordField.setText( chord_string );
thicknessField.setText( thickness_string );
massField.setText( mass_string );
altitudeField.setText( altitude_string );
velocityField.setText( velocity_string );
trajectory_angleField.setText( trajectory_angle_string );
time_incrementField.setText( time_increment_string );
rotation_factorField.setText( rotation_factor_string );
resultsArea.setEditable( true );
resultsArea.setText( results_string );
resultsArea.setEditable( false );
span = 0;
chord = 0;
thickness = 0;
mass = 0;
altitude = 0;
velocity = 0;
trajectory_angle = 0;
time_increment = 0;
rotation_factor = 0;
distance = 0;
velocity_fps = 0;
elapsed_time = 0;
/* deletion of code segment 4
} // end method actionPerformed2
} // end anonymous inner class2
); // end call to addActionlistener2
} // end method reset
public void cont()
//later
public void calculate()
distance = 1;
altitude = 2;
trajectory_angle = 3;
velocity_fps = 4;
elapsed_time = 5;
public String results()
results_string =
"Distance =\t\t" + distance + " miles\n"
+ "Altitude =\t\t" + altitude + " feet\n"
+ "Trajectory Angle =\t" + trajectory_angle + " degrees\n"
+ "Velocity =\t\t" + velocity_fps + " feet per second\n"
+ "Elapsed Time =\t\t" + elapsed_time + " seconds\n"
+ "\nstatus_a = " + status_a + "\nstatus_b = "
+ status_b + "\nstatus_c = " + status_c;
return results_string;
public void start()
if(status_a == 0 )
strtb();
if (status_b == 0)
reset();
}// end method start
} //end class trajectory_aThe following are copies of html and java source code files for a prior runnable version ( trajectory_b ) of this program which can enlighten some functionality intended by the program.
(trajectory_b.html):
<html>
<appletcode = "trajectory_b.class" width = "800" height = "600">
</applet>
</html>
(trajectory_b.java):
// trajectory Analysis Program: trajectory_b.java
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class trajectory_b extends JApplet implements ActionListener {
private JTextArea introductionArea, resultsArea;
private JLabel spanLabel, chordLabel,
thicknessLabel, massLabel, altitudeLabel, velocityLabel,
trajectory_angleLabel, time_incrementLabel, rotation_factorLabel,
calculationLabel, resultsLabel;
private JTextField spanField, chordField, thicknessField,
massField, altitudeField, velocityField, trajectory_angleField,
time_incrementField, rotation_factorField;
private JButton startButton, resetButton, contButton, termButton;
String introduction_string, span_string, chord_string, thickness_string, mass_string,
altitude_string, velocity_string, trajectory_angle_string,
time_increment_string, rotation_factor_string, results_string;
double span, chord, thickness, mass, altitude, velocity, trajectory_angle, time_increment,
rotation_factor, distance, velocity_fps, elapsed_time;
int status_a;
int status_b;
int status_c;
/* deletion of code segment a
span = 0;
chord = 0;
thickness = 0;
mass = 0;
altitude = 0;
velocity = 0;
trajectory_angle = 0;
time_increment = 0;
rotation_factor = 0;
distance = 0;
velocity_fps = 0;
elapsed_time = 0;
velocity_fps = 0;
elapsed_time = 0;
// create objects
public void init()
status_a = 0;
status_b = 0;
status_c = 0;
// create container & panel
Container container = getContentPane();
Panel panel = new Panel( new FlowLayout( FlowLayout.LEFT));
container.add( panel );
// set up vertical boxlayout
Box box = Box.createVerticalBox();
Box inputbox1 = Box.createHorizontalBox();
Box inputbox2 = Box.createHorizontalBox();
Box inputbox3 = Box.createHorizontalBox();
Box buttonbox = Box.createHorizontalBox();
introduction_string = "This is the introduction";
// set up introduction
introductionArea = new JTextArea( introduction_string, 10, 50 );
introductionArea.setEditable( false );
box.add( new JScrollPane( introductionArea ) );
box.add( Box.createVerticalStrut (10) );
box.add( inputbox1);
// set up span
spanLabel = new JLabel( "span (feet)" );
spanField = new JTextField(5 );
inputbox1.add( spanLabel );
inputbox1.add( spanField );
Dimension minSize = new Dimension(5, 15);
Dimension prefSize = new Dimension(5, 15);
Dimension maxSize = new Dimension(Short.MAX_VALUE, 15);
inputbox1.add(new Box.Filler(minSize, prefSize, maxSize));
// set up chord
chordLabel = new JLabel( "chord (feet)" );
chordField = new JTextField(5 );
inputbox1.add( chordLabel );
inputbox1.add( chordField );
inputbox1.add(new Box.Filler(minSize, prefSize, maxSize));
// set up thickness
thicknessLabel = new JLabel( "thickness (feet)" );
thicknessField = new JTextField(5 );
inputbox1.add( thicknessLabel );
inputbox1.add( thicknessField );
inputbox1.add(new Box.Filler(minSize, prefSize, maxSize));
// set up mass
massLabel = new JLabel( "mass (slugs)" );
massField = new JTextField(5);
inputbox1.add( massLabel );
inputbox1.add( massField );
box.add( Box.createVerticalStrut (10) );
box.add( inputbox2);
// set up altitude
altitudeLabel = new JLabel( "altitude (feet)");
altitudeField = new JTextField(5 );
inputbox2.add( altitudeLabel );
inputbox2.add( altitudeField );
inputbox2.add(new Box.Filler(minSize, prefSize, maxSize));
// set up velocity
velocityLabel = new JLabel( "velocity (Mach Number)");
velocityField = new JTextField(5);
inputbox2.add( velocityLabel );
inputbox2.add( velocityField );
inputbox2.add(new Box.Filler(minSize, prefSize, maxSize));
// set up trajectory_angle
trajectory_angleLabel = new JLabel( "trajectory angle ( -90 degrees <= trajectory angle <= 90 degrees )");
trajectory_angleField = new JTextField(5);
inputbox2.add( trajectory_angleLabel );
inputbox2.add( trajectory_angleField );
box.add( Box.createVerticalStrut (10) );
box.add( inputbox3);
Dimension minSizeF = new Dimension(70, 15);
Dimension prefSizeF = new Dimension(70, 15);
Dimension maxSizeF = new Dimension(Short.MAX_VALUE, 15);
inputbox3.add(new Box.Filler(minSizeF, prefSizeF, maxSizeF));
// set up time_increment
time_incrementLabel = new JLabel( "time increment (seconds)" );
time_incrementField = new JTextField(5);
inputbox3.add( time_incrementLabel );
inputbox3.add( time_incrementField );
inputbox3.add(new Box.Filler(minSizeF, prefSizeF, maxSizeF));
// set up rotation_factor
rotation_factorLabel = new JLabel( "rotation factor ( non-negative number)" );
rotation_factorField = new JTextField(5);
inputbox3.add( rotation_factorLabel );
inputbox3.add( rotation_factorField );
inputbox3.add(new Box.Filler(minSizeF, prefSizeF, maxSizeF));
box.add( Box.createVerticalStrut (10) );
box.add( buttonbox);
// set up start
startButton = new JButton( "START" );
buttonbox.add( startButton );
Dimension minSizeB = new Dimension(10, 30);
Dimension prefSizeB = new Dimension(10, 30);
Dimension maxSizeB = new Dimension(Short.MAX_VALUE, 30);
buttonbox.add(new Box.Filler(minSizeB, prefSizeB, maxSizeB));
// set up reset
resetButton = new JButton( "RESET" );
buttonbox.add( resetButton );
buttonbox.add(new Box.Filler(minSizeB, prefSizeB, maxSizeB));
// set up cont
contButton = new JButton( "CONTINUE" );
buttonbox.add( contButton );
buttonbox.add(new Box.Filler(minSizeB, prefSizeB, maxSizeB));
// set up term
termButton = new JButton( "END" );
buttonbox.add( termButton );
box.add( Box.createVerticalStrut (10) );
// set up results
resultsArea = new JTextArea( results_string, 10, 50 );
resultsArea.setEditable( false );
box.add( new JScrollPane( resultsArea ) );
// add box to panel
panel.add( box );
// register event handlers
Handler handler = new Handler();
spanField.addActionListener( handler );
chordField.addActionListener( handler );
thicknessField.addActionListener( handler );
massField.addActionListener( handler );
altitudeField.addActionListener( handler );
velocityField.addActionListener( handler );
trajectory_angleField.addActionListener( handler );
time_incrementField.addActionListener( handler );
rotation_factorField.addActionListener( handler );
startButton.addActionListener( handler );
resetButton.addActionListener( handler );
contButton.addActionListener( handler );
termButton.addActionListener( handler );
} // end method init
// process handler events
public void actionPerformed( ActionEvent event )
// process resetButton event
if ( event.getSource() == resetButton )
reset();
// process contButton event
if ( event.getSource() == contButton )
cont();
// process endButton event
if ( event.getSource() == termButton )
// process span event
if( event.getSource() == spanField ) {
span = Double.parseDouble( event.getActionCommand() );
spanField.setText( span_string );
status_b++;
// process chord event
if( event.getSource() == spanField ) {
span = Double.parseDouble( event.getActionCommand() );
spanField.setText( chord_string );
status_b++;
// process thickness event
if( event.getSource() == thicknessField ) {
thickness = Double.parseDouble( event.getActionCommand() );
spanField.setText( thickness_string );
status_b++;
// process mass event
if( event.getSource() == massField ) {
mass = Double.parseDouble( event.getActionCommand() );
spanField.setText( mass_string );
status_b++;
// process altitude event
if( event.getSource() == altitudeField ) {
altitude = Double.parseDouble( event.getActionCommand() );
spanField.setText( altitude_string );
status_b++;
// process velocity event
if( event.getSource() == velocityField ) {
velocity = Double.parseDouble( event.getActionCommand() );
spanField.setText( velocity_string );
status_b++;
// process trajectory_angle event
if( event.getSource() == trajectory_angleField ) {
trajectory_angle = Double.parseDouble( event.getActionCommand() );
spanField.setText( trajectory_angle_string );
status_b++;
// process time_increment event
if( event.getSource() == time_incrementField ) {
time_increment = Double.parseDouble( event.getActionCommand() );
spanField.setText( time_increment_string );
status_b++;
// process rotation_factor event
if( event.getSource() == rotation_factorField ) {
rotation_factor = Double.parseDouble( event.getActionCommand() );
spanField.setText( rotation_factor_string );
status_b++;
// process startButton event
if ( event.getSource() == startButton && status_b == 9 ) {
strtb();
} // end method event handler
public void strtb()
startButton.addActionListener(
new ActionListener() { // anonymous inner class
// set text in resultsArea
public void actionPerformed( ActionEvent event )
calculate();
results();
resultsArea.setText( results() );
}// end method actionPerformed1
} // end anonymous inner class1
); // end call to addActionlistener1
} // end method strtb
public void reset()
resetButton.addActionListener(
new ActionListener() { // anonymous inner class
// set text in resultsArea
public void actionPerformed( ActionEvent event )
span_string = "";
chord_string = "";
thickness_string = "";
mass_string = "";
altitude_string = "";
velocity_string = "";
trajectory_angle_string = "";
time_increment_string = "";
rotation_factor_string = "";
results_string = "";
spanField.setText( span_string );
chordField.setText( chord_string );
thicknessField.setText( thickness_string );
massField.setText( mass_string );
altitudeField.setText( altitude_string );
velocityField.setText( velocity_string );
trajectory_angleField.setText( trajectory_angle_string );
time_incrementField.setText( time_increment_string );
rotation_factorField.setText( rotation_factor_string );
resultsArea.setEditable( true );
resultsArea.setText( results_string );
resultsArea.setEditable( false );
span = 0;
chord = 0;
thickness = 0;
mass = 0;
altitude = 0;
velocity = 0;
trajectory_angle = 0;
time_increment = 0;
rotation_factor = 0;
distance = 0;
velocity_fps = 0;
elapsed_time = 0;
} // end method actionPerformed2
} // end anonymous inner class2
); // end call to addActionlistener2
} // end method reset
public void cont()
//later
public void calculate()
distance = 1;
altitude = 2;
trajectory_angle = 3;
velocity_fps = 4;
elapsed_time = 5;
public String results()
results_string =
"Distance =\t\t" + distance + " miles\n"
+ "Altitude =\t\t" + altitude + " feet\n"
+ "Trajectory Angle =\t" + trajectory_angle + " degrees\n"
+ "Velocity =\t\t" + velocity_fps + " feet per second\n"
+ "Elapsed Time =\t\t" + elapsed_time + " seconds\n"
+ "\nstatus_a = " + status_a + "\nstatus_b = "
+ status_b + "\nstatus_c = " + status_c;
return results_string;
public void start()
if(status_a == 0 )
strtb();
if (status_b == 0)
reset();
}// end method start
} //end class trajectory_b -
hello to all!!!
i am having a problem in JList event handling.Following is my code--
public void valueChanged(ListSelectionEvent lse)
{index = list.getSelectedIndex();
if(index==0)
System.out.println( "index"+index);
System.out.println("1st frame now opened");
JFrame f2=new JFrame();
JPanel p1=new JPanel();
f2.getContentPane().add(p1);
JLabel l10=new JLabel("id");
JTextField t100=new JTextField(20);
p1.add(l10);
p1.add(t100);
p1.add(l11);//declared in constructor
setDefaultCloseOperation(EXIT_ON_CLOSE);
f2.setVisible(true);
if(index==1)
System.out.println("now index is"+index);
}My problem is that 2 frames get opened whenever index==0 .even the code written in System.out.println() is displayed 2 times on the screen.2 JFrames open up whenever index==0.i want that only 1 JFrame should be opened.and moreover 1 of the JFrame does not contain the JLabel that is declared in the constructor.and when index==1,then The index value is displayed 2 times on the screen.i want that only 1 value should be there.any help would be highly appreciated.thanks in advance.even after entering if (lse.getValueIsAdjusting())
}index = list.getSelectedIndex();i am having the same value.my problem is not when value of index changes.even if i use only 1 st index (i.e. only click on academic record) than also 2 frames open up.i entered this code after if(index==0) and if if(index==1).but it was of no help.same problem of 2 times each event occuring is there.
urgent Help required.any help would be highly appreciated.thnx in advance -
Modify User Postprocess event handler
Hi All,
Can some one tell me how to fetch complete set of user data in orchestration while i trigger my update event handler.?
eg
I have a event handler which is working fine on create user operation.(populates a custom udf Country based on employee type and another filed called city)
Now in my update if i update my city country shd be updated,but orchestration only returns values for the fields which are updated and not all,my employee type is returned as NULL,which makes my code to fail
Can anyone tell me how to get the existing data in orchestration?
I hope I am able to explain my scenario
ThanksYou can get all the attributes from Identity array or User
Check this
Re: EventHandler - How to get user Key
To modify user attribute
Urgent help required: Event Handlers
You can get lots of post related to you question.
HTH -
Group RCDC Event Handler Bug?
I have added a field in the Group RCDC in a Tab (grouping) called "Admin" and marked it as Required within the RCDC.
Now, if I were to take an existing group that has a Member Selection of "Criteria-Based" and change it to "Manual" and click "OK" without populating the "required" field in the other tab, I would be re-directed to
the field with the note "The required field cannot be empty" as expected. However, if I fill out the field and submit the request, I noticed it doesn't clear the underlying "Filter" attribute and the request fails with "Group validation
failed: Static group cannot update membership filter".
I believe this is related to the fact that the Group RCDC has a built-in event handler when the "Member Selection" changes. But doesn't modify the "Filter" attribute unless you go to the "Members" tab? Seems the even handler
is ignored or overridden by the event handler that checks for Required fields to be populated?
Anyone else run into this?I have added a field in the Group RCDC in a Tab (grouping) called "Admin" and marked it as Required within the RCDC.
Now, if I were to take an existing group that has a Member Selection of "Criteria-Based" and change it to "Manual" and click "OK" without populating the "required" field in the other tab, I would be re-directed to
the field with the note "The required field cannot be empty" as expected. However, if I fill out the field and submit the request, I noticed it doesn't clear the underlying "Filter" attribute and the request fails with "Group validation
failed: Static group cannot update membership filter".
I believe this is related to the fact that the Group RCDC has a built-in event handler when the "Member Selection" changes. But doesn't modify the "Filter" attribute unless you go to the "Members" tab? Seems the even handler
is ignored or overridden by the event handler that checks for Required fields to be populated?
Anyone else run into this? -
GUI event handling problems appear in 1.4.1 vs. 1.3.1?
Hi,
Has anyone else experienced strange event handling problems when migrating from 1.3.1 to 1.4.1? My GUI applications that make use of Swing's AbstractTableModel suddenly don't track mouse and selection events quickly anymore. Formerly zippy tables are now very unresponsive to user interactions.
I've run the code through JProbe under both 1.3 and 1.4 and see no differences in the profiles, yet the 1.4.1 version is virtually unusable. I had hoped that JProbe would show me that some low-level event-handling related or drawing method was getting wailed on in 1.4, but that was not the case.
My only guess is that the existing installation of 1.3.1 is interfering with the 1.4.1 installation is some way. Any thoughts on that before I trash the 1.3.1 installation (which I'm slightly reluctant to do)?
My platform is Windows XP Pro on a 2GHz P4 with 1GB RAM.
Here's my test case:
import javax.swing.table.AbstractTableModel;
import javax.swing.*;
import java.awt.*;
public class VerySimpleTableModel extends AbstractTableModel
private int d_rows = 0;
private int d_cols = 0;
private String[][] d_data = null;
public VerySimpleTableModel(int rows,int cols)
System.err.println("Creating table of size [" + rows + "," + cols +
d_rows = rows;
d_cols = cols;
d_data = new String[d_rows][d_cols];
int r = 0;
while (r < d_rows){
int c = 0;
while (c < d_cols){
d_data[r][c] = new String("[" + r + "," + c + "]");
c++;
r++;
System.err.println("Done.");
public int getRowCount()
return d_rows;
public int getColumnCount()
return d_cols;
public Object getValueAt(int rowIndex, int columnIndex)
return d_data[rowIndex][columnIndex];
public static void main(String[] args)
System.err.println( "1.4..." );
JFrame window = new JFrame();
window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
Dimension size = new Dimension(500,500);
panel.setMinimumSize(size);
panel.setMaximumSize(size);
JTable table = new JTable(new VerySimpleTableModel(40,5));
panel.add(table);
window.getContentPane().add(panel);
window.setSize(new Dimension(600,800));
window.validate();
window.setVisible(true);
Thanks in advance!!
- DeanHi,
I've fixed the problem by upgrading to 1.4.1_02. I was on 1.4.1_01.
I did further narrow down the symptoms more. It seemed the further the distance from the previous mouse click, the longer it would take for the table row to highlight. So, clicking on row 1, then 2, was much faster than clicking on row 1, then row 40.
If no one else has seen this problem -- good! I wouldn't wish the tremendous waste of time I've had on anyone!
- Dean -
How to trigger navigation to a portal iView from server side event handler
Hi,
I am modifying the workset map application. I have created custom URL links under each iView which should navigate to different iViews depending on some business logic. So I had to provide a custom event handler for these iVIew links and the path to the next iview is dynamically created by the code in the event handler. Once the new PCD path is generated, the event handler should trigger a navigation to that PCD object. Which APIs can I use to trigger this navigation from the server side event handler? I have done this before in webdynpro where we used WDPortalNavigation (.absoluteNavigation or .relativeNavigation). Is there something similar that i can use in this case (i.e. when developing a simple Portal Application from an AbstractPortalComponent)?Hi,
On my understanding of your requirement.
the best solution what i think is use Object Based Navigation(OBN).
Is much suitable to your requirement.
Moreover you can use
1.Relative navigation
2.Absolute navigation.
In the same way how you used in web dynpro.
Same thing can be done in abstract portal component also.
Try using that.
Thanks & Regards,
Lokesh
Edited by: lokesh kamana on Aug 11, 2008 7:23 AM -
OIM 11gR2 - RoleUser PostProcess Event Handler not triggered
Hi,
I'm trying to create a postprocess event-handler for RoleUser entity so that when a role is assigned (or removed) to a user an UDF is populated with the list of its roles.
I developed my event-handler and registered it following instructions on http://docs.oracle.com/cd/E27559_01/dev.1112/e27150/oper.htm#OMDEV4749 but the event-handler is not triggered.
I've read and tried a lot of things but nothing seems to work.
I use System.out.println() and a Logger in the event-handler methods as well as breakpoints debugging via Eclipse, all this indicates the event-handler is not triggered.
I checked the event-handler is registered by using getEventHandlers(RoleUser,CREATE) method on IAMAppDesignMBean through Enterprise Manager. Result is :
Postprocess,-2147483648,PostProcessingInitiation,/metadata/iam-features-request/event-definition/EventHandlers.xml,true
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,FIRST,MyHandler,Plugin:MyHandler,false
Postprocess,1020,RoleGrantPostProcessActionHandler,/metadata/iam-features-identity/event-definition/EventHandlers.xml,false
Postprocess,9988,AsyncHandler,/metadata/iam-features-asyncwsclient/EventHandlers.xml,true
Postprocess,3000000,CallBackOAACGWithApprove,/metadata/iam-features-rolesod/EventHandlers.xml,true
Postprocess,2147483647,RequestCompleted,/metadata/iam-features-request/event-definition/EventHandlers.xml,true
Note that I dont understand why the handler appears four times..
Also, when I unregister it, it still appears one time.
Here is my event handler XML file (in META-INF folder of the plugin zip) :
<?xml version='1.0' encoding='utf-8'?>
<eventhandlers
xmlns="http://www.oracle.com/schema/oim/platform/kernel/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
<action-handler
class="package.MyHandler"
entity-type="RoleUser"
operation="ANY"
name="MyHandler"
stage="postprocess"
order="FIRST"
sync="TRUE" />
</eventhandlers>
plugin.xml file (root of plugin zip) :
<?xml version="1.0" encoding="UTF-8"?>
<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
<plugin
pluginclass="package.MyHandler"
version="1.0"
name="Myhandler" />
</plugins>
</oimplugins>
Java code (in a JAR in lib folder of plugin zip) :
public class MyHandler implements PostProcessHandler {
@Override
public EventResult execute(long processId, long eventId, Orchestration orchestration) {
System.out.println("Inside EventResult execute ");
LOGGER.log(Level.SEVERE, "Inside eventResult execute");
// Some code
return new EventResult();
@Override
public BulkEventResult execute(long processId, long eventId, BulkOrchestration orchestration) {
String operation = orchestration.getOperation().trim().toString();
System.out.println("<---------- Calling " + getClass().getName() + ": Operation[" + operation + "] Execute ---------->");
LOGGER.log(Level.SEVERE, "Inside BulkEventResult execute");
// Some code
return new BulkEventResult();
Maybe I'm missing something ? Any help would be really appreciated
Thanks,
Gael
EDIT :
Also note that I see these messages in the logs but I'm not sure it concern my event handler from what I read on some pages :
XML schema validation failed for XML eventhandlers and it will not be loaded by kernel.
[CALLBACKMSG] Found 0 possible matches for applicable policies for step POST_PROCESS, entity RoleUser, operation CREATE.
Related link : Post process event handler when a role is created or modified in OIMI eventually got it working but I'm not sure of how.. !
I changed the name of the handler (it was not "MyHandler" but something very long, I shortened it). I copy and paste exactly what was described here : Post process event handler when a role is created or modified in OIM. I did purge cache. I tried to apply it on another entity (Role), it was triggered, then I applied it back to RoleUser and it still works.
If it can help someone, my plugin zip contains :
plugin.xml :
<?xml version="1.0" encoding="UTF-8"?>
<oimplugins xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<plugins pluginpoint="oracle.iam.platform.kernel.spi.EventHandler">
<plugin pluginclass="fr.xxx.RoleUserProcessor"
version="1.0" name="RoleUserProcessor" />
</plugins>
</oimplugins>
META-INF/EventHandlers.xml :
<?xml version="1.0" encoding="UTF-8"?>
<eventhandlers xmlns="http://www.oracle.com/schema/oim/platform/kernel"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.oracle.com/schema/oim/platform/kernel orchestration-handlers.xsd">
<action-handler class="fr.xxx.RoleUserProcessor"
entity-type="RoleUser" operation="ANY" name="RoleUserProcessor" order="9999"
stage="postprocess" sync="TRUE" />
</eventhandlers>
lib/xxx.jar/RoleUserProcessor.java :
@Override
public EventResult execute(long processId, long eventId, Orchestration orchestration) {
LOGGER.log(Level.INFO, "Execution RoleUserProcessor EventHandler (mode non bulk)");
String operation = orchestration.getOperation().trim().toString();
LOGGER.log(Level.INFO, "Operation : " + operation);
return new EventResult();
@Override
public BulkEventResult execute(long processId, long eventId, BulkOrchestration orchestration) {
LOGGER.log(Level.INFO, "Execution RoleUserProcessor EventHandler (mode bulk)");
String operation = orchestration.getOperation().trim().toString();
LOGGER.log(Level.INFO, "Operation : " + operation);
return new BulkEventResult();
Thank you
Also, a thing that may help some people, I found out that the ORCHEVENTS table in OIM schema contains the history of handlers triggered. -
The attached LabVIEW 8.5 vi demonstrates a problem I noticed using multicolumn listboxes. Upon changing the value (selected row) of the listbox programmatically, the very next press of the up or down arrow key behaves as if the value was never changed. For example, if the 3rd row is selected and then the listbox value is changed programmatically via a local variable or the value property to select the 0th row, pressing the down arrow key should now select the 1st row, but instead the 4th row is selected.
A workaround is to handle the Key Down? event myself as I've demonstrated in the attachment, but if this is a bug, I hope it can be corrected in a future release.
Larry
Attachments:
MC Listbox Bug.vi 30 KBHi Larry,
Pnt is correct and this is a known bug and relates to how the current row/ active row is handled when changing the values programmatically. Perhaps if you post your code we both can have a look and provide additional guidance.
Alternatively this forum post is related to your work around for using the event handler.
Regards,
Rishi L
National Instruments
Applications Engineer -
Event handling from class to another
i get toolbarDemo.java which make event handling to JTextArea in the same class
http://java.sun.com/docs/books/tutorial/uiswing/components/example-1dot4/index.html#ToolBarDemo
but i have another class and i make object of toolBar class and i move toolBar icons only how can i move the event handling as open ,save,copy,paste to my another class
i want to ignore actionPerformed of toolBar class and listen to my another's class actionPerformed
thanksRather than trying to use the ToolBarDemo class as-is you can use/modify the methods in it for your own class, like this:
import java.awt.*;
import java.awt.event.*;
import java.net.URL;
import javax.swing.*;
import javax.swing.text.TextAction;
public class ToolBarIconTest implements ActionListener
static final private String OPEN = "open";
static final private String SAVE = "save";
static final private String COPY = "copy";
static final private String PASTE = "paste";
public void actionPerformed(ActionEvent e)
String cmd = e.getActionCommand();
if (OPEN.equals(cmd))
System.out.println("show a JFileChooser open dialog");
if (SAVE.equals(cmd))
System.out.println("show a JFileChooser save dialog");
private JToolBar getToolBar()
JToolBar toolBar = new JToolBar();
addButtons(toolBar);
return toolBar;
protected void addButtons(JToolBar toolBar) {
JButton button = null;
//first button
button = makeGeneralButton("Open24", OPEN,
"To open a document",
"Open", this);
toolBar.add(button);
//second button
button = makeGeneralButton("Save24", SAVE,
"To save a document",
"Save", this);
toolBar.add(button);
//third button
button = makeGeneralButton("Copy24", COPY,
"Copy from focused text component",
"Copy", copy);
toolBar.add(button);
//fourth button
button = makeGeneralButton("Paste24", PASTE,
"Paste to the focused text component",
"Paste", paste);
toolBar.add(button);
protected JButton makeGeneralButton(String imageName,
String actionCommand,
String toolTipText,
String altText,
ActionListener l) {
//Look for the image.
String imgLocation = "toolbarButtonGraphics/general/"
+ imageName
+ ".gif";
URL imageURL = ToolBarIconTest.class.getResource(imgLocation);
//Create and initialize the button.
JButton button = new JButton();
button.setActionCommand(actionCommand);
button.setToolTipText(toolTipText);
button.addActionListener(l);
if (imageURL != null) { //image found
button.setIcon(new ImageIcon(imageURL, altText));
} else { //no image found
button.setText(altText);
System.err.println("Resource not found: "
+ imgLocation);
return button;
private Action copy = new TextAction(COPY)
public void actionPerformed(ActionEvent e)
JTextComponent tc = getFocusedComponent();
int start = tc.getSelectionStart();
int end = tc.getSelectionEnd();
if(start == end)
tc.selectAll();
tc.copy();
private Action paste = new TextAction(PASTE)
public void actionPerformed(ActionEvent e)
getFocusedComponent().paste();
private JPanel getTextFields()
JPanel panel = new JPanel(new BorderLayout());
panel.add(new JTextField(12), "North");
panel.add(new JTextField(12), "South");
return panel;
public static void main(String[] args)
ToolBarIconTest test = new ToolBarIconTest();
JFrame f = new JFrame();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.getContentPane().add(test.getToolBar(), "North");
f.getContentPane().add(test.getTextFields());
f.setSize(360,240);
f.setLocation(200,200);
f.setVisible(true);
}Use the -cp option as shown in the ToolBarDemo class comments
C:\jexp>java -cp .;path_to_jar_file/jlfgr-1_0.jar ToolBarIconTest -
Trajectory program event handling
Nobody else responded to my question on the subject "Trajectory" in Java Programming forum. See my post history for problem description and code. Perhaps the subject is more appropriate here as an event handling issue. Who has the technical savvy to attempt a solution?
(2) I wouldn't have problem with separate classes as
long as I have no inner classes and the program
essentially works. Sure, one 10,000 - line class may also work fine. However, it is reccommended do not make classes
(as well as source files) very large. The reason is that long file is more difficult to debug.
Second reason why i advised you to do that is that you mix in one class Trajectory (which is about 2000 lines long!!!) all - interface, event handling, calculations, parts responsible for 2D panel processing....
Well, this is not Java is supoposed to be used for.
(3) Creating object of class Falling object is
something I'll consider. If you could show me a brief
code example, I'll understand more.
class fallingObject
private double mass;
private double speed;
Position[] trajectory = new Position[1000]; // Create class Position each object of which holds only
// 2 variables - x and y
//all initial data related to this object
fallingObject(double mass, double speed , /* the rest ........*/)
this.mass = mass;
this.speed = speed;
moveObject();
//and so on
// some methods you need
private moveObject ()
// perform all calculations
// fill array
// etc
Now, because all except trajectory array and constructor is private you cannot change this object outside
class. This means that if something goes wrong with calculations, you check only this class and nothing else. In your case you can change some variable at lines 1352 and 122 - you have to check all program to find bug. Here you have to check only this class.
You may also supply this class with mutators and accessors
public double getMass()
return mass;
public void setMass(double mass) // only if you really need this
this.mass = mass;
The time interval
is a tricky parameter since not all calculations work
properly with input data; check input
the logic would require more
complexity and possibly cause run time problems;
automatically testing for the appropriate time
interval could also reduce program efficiency. Dont think so. You can calculate time of falling and divide it by 1000, for instance.
It will take very short time.
I don't
want to set a limit for array points to 1000 or less
since the precision becomes limited and the power of
the program can be hurt severely since the time
duration would be restricted to less than 16 2/3
minutes( 1 second per array index increment). Dont use real time simulation. There is no sence in it. You just want to show how object is falling.
Also, I
don't think the array size can't be changed during a
program run although I have set a much higher maximum
value for array size. Theres no need to change array size.
(4) Erasing data from textfields is something I desire
as a calculation reset feature since it should signal
user that it expects new data and not looking at old
data; however, I might consider additional variables
to hold the data. Well, man, it was quite irritating to type them in. So many fields. User is not stupid,
he knows that he can input other data. Almost anybody will leave this page and wont want to
fill fields again. You have to think about user, not about what you want.
(5 )BTW, what I have in the array doesn't have the
same precision as with the calculation mode. The 2D
simulation uses less precise data to become visually
practical for comprehension of users. But perhaps I
need more than one type of array, but then again,
performance could be a problem.
(6) I thought the program already does take parameters
from text fields and start again. This is what I
desire anyway so I'm not sure why I need new start
feature.
(7) Restart animation seems unaccepatble since I
prefer to treat each simulation as something based on
new calculation data.
I would have initially set up the program with OOD
emphasis, but the original intent was a java
conversion of a a C++ program that needed only a
structured program design and the conversion worked
fine. This Java program has evolved with the 2D
simulation enhancements.
When you did testing the other day, did you use
appletviewer? I looked at it on your site using Safari and run it as application also.
Appletviewer will not detect the problem
so don't rely on Appletviewer to interpret the
problem. Oddly, I wish the program behaved the same
way as what happens when using appletviewer. In fact,
if I could change 2d reset button logic to terminate
and restart the entire applet again via html, then my
problem would be solved. But I don't know if this type
of applet restart is possible or how to effect the
code change if feasible.
Maybe you are looking for
-
My quicktime does not work at all on my iMac with Lion
When I click the quicktime icon it does not open up at all. Quicktime has never worked since the day I bought the computer which was a few weeks ago. Is there a fix to this problem?
-
Connection problem to Oracle 11.1.0 on Windows Professional XP (SP2)
Hello I've recently performed default installations for 3 Oracle Databases, into seperate homes on a newly formatted Windows Professional XP (SP2) standalone laptop. For all databases Oracle 10.2.0 (rover), Oracle XE (xe) and Oracle 11.1.0 (fido) I i
-
Hi, This is a fairly simple question which will help me put things in place, if anyone can answer. In the ABAP world, Iunderstand that a "web service" is something we create to place an RFC or program available in the "web world". Is that correct? I'
-
Need Master-Detail relation to link Master column to 2 different detail col
I have a form with a master detail relation. The master block is a database table rec_shipments with a primary key of shipment_id and a bunch of other columns. The detail block is a table rec_containers with a container_id as the primary key plus col
-
How to print the error records and success records in bdc
how to print the number of error records and success records in bdc