OO event handling mechanism
Java2 handles event with oo event handling mechanism , can anybody here tell me some deficiency of this mechanism , and some thing about in VC ++?
Java2 handles event with oo event handling mechanism ,
can anybody here tell me some deficiency of this
mechanism , and some thing about in VC ++?They're all based on variations of the MVC architecture. This stands for Model, View and Controller. The principle is simple. The idea is that you separate the internal program logic (the models) from what the users actually see on the screen (the views). The controller is the mechanism which ties models and views together reacting to user wishes (in the form of events like mouse clicks and pressed keys). It's often also called a listener.
You'll have to draw a picture of how MVC is implemented in Java Swing and Visual C++ and then compare the implementations. You only benefit from the exercise if you do it yourself. Remember that MVC isn't part of Java or C++ but rather an OO design patter implemented on top of the language to handle the GUI.
Similar Messages
-
*ACTUAL* event handling mechanism in java
Hi there! Could someone please help me find resources that explain how EXACTLY the event handling mechanism works in java?
My searches on google and java.sun take me to pages that explain how to code or something close to that. But what I actually want to know is how is all this handled BY Java- how does the event source or VM know how/when to fire and event? how the event is fired? how do objects keep track of the listener objects?...and all the background stuff like that.
I've downloaded the Java source code, too. But it seems like an ocean to me to wade through. Would be a great help if someone could 'point out the right path'.
Thank you very much!Hi there! Could someone please help me find
resources that explain how EXACTLY the event
handling mechanism works in java?My counter question is why do you care how EXACTLY the mechanism works? It works, and that's all most people need to know.
How it works is an implementation issue, likely to change from release to release, or as more efficient mechanisms are discovered.
But what I actually want to know is how is all this
handled BY Java- how does the event source or VM
know how/when to fire and event?Native peers attached to a component (AWT) or the frame (Swing) notify Java that an event has occurred in some way. (This will likely change somewhat from platform to platform)
An AWTEvent is created to represent the native event (Swing requiring more overhead to locate the source of the event) which is added to the EventQueue.
how the event is fired? how do objects keep track of
the listener objects?...and all the background stuff like
that.The above is done on a native thread - not the event thread. The event thread is sitting in the event queue waiting for an event to come along. It processes events in the queue and sends them to the object which "generated" them. This object informs each of its listeners in turn about the event.
Objects keep track of listeners however they want. AWT objects seem to use java.awt.AWTEventMulticaster. Swing objects seem to use an javax.swing.event.EventListenerList. I tend to use multiple ArrayLists.
Note that native events are sent through the EventQueue because they originate from non-event-thread threads. Often when specialising events, in particular sending custom events in response to, say, a button press, the event firing will be done in-place, since it is already in the event thread. Custom events that originate from outside the event thread are customarily added to the EventQueue with EventQueue.invokeLater or invokeAndWait.
This is from inspection of the Java 1.3 source (specifically java.awt.Button and javax.swing.JComponent) and knowledge of the APIs. -
Unexpected Behaviour of flash event handling mechanism
I am implementing my own selection manager in flash. When
ever you have key down the mouse events for movieclips onRelease()
is called even though you have'nt yet released it. ( if any one
knows how to handle please replyDear Khedar Prasad,
Thank you so much for your wonderful suggestion.
I included your following suggestion at BSVW under system settings(system status events).
1. I0001: CRTD in create event which is the system status set when you create any project ( see basic data tab)
in this way the event created will get triggered only when you create any project.
My workflow now behaves as expected.
I am extremely thankful to you.
Thanks and regards,
S.Suresh -
Hi All,
I am looking for tutorials on the following and related topics:
creating custom gui components that extend from JComponent
event-handling mechanism STFWed and all I got was some examples on how to create them
Look they give an idea on how to do it but that leaves me/you stranded
in situations where you need to create one that is out of the scope of the example.
+ the examples don't always work.
Links to preferably tutorials and even more examples would be much appreciated
thanx
gtRprSorry I thought I was in the New to Java Forum
Only realized that I was in Java Programming Forum after I had created the Thread
My Bad --- I will be more careful next time -
Event Handling in labview with arrays as event data
Hey folks,
I have a Labview Application which uses a dll to read Ethernet data. The setup is such that, when the dll has fresh data it sends out an event to the Labview Application so that the fresh data can be displayed.
However i have only managed to get this event based mechanism to send out a single structure at a time. Hence if there are 10 fresh data values, i need to send out 10 events (each event structure contains the parameter name, parameter value, unit and time stamp). It would be more efficient to send out an array of structures in a sigle shot.
I have tried this but Labview keeps crashing saying that an error was encountered and Labview needs to close along with an access violation message. I did a lot of online searching and found some LV code for event handling but not come accross any implementation which uses arrays as evend data. Is this supoorted? And if so is there any example vi that can be shared so that i get some knowledge about this.
Many Thanks in adavance,
Abel.I also gave a try by using a variant as the event data type instead of the cluster which contains the array of floats. I converted the cluster into a variant and used that to create the user event reference. Followed the same logic while decoding the dats.
But still the crash.... Here is the windbg output...
ModLoad: 07580000 075b7000 C:\Program Files\National Instruments\LabVIEW 2012\resource\lvalarms.dll
ModLoad: 0ca90000 0cb72000 C:\Program Files\National Instruments\LabVIEW 2012\resource\mesa.dll
ModLoad: 0c7f0000 0c7f9000 C:\Program Files\National Instruments\LabVIEW 2012\resource\lvuste.dll
ModLoad: 35000000 3509b000 C:\Program Files\National Instruments\Shared\TDMS\tdms.dll
ModLoad: 0c860000 0c87c000 D:\SapphireViewer\dll\SapphireClientDll.dll
ModLoad: 0e240000 0e2c7000 C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.6195_x-ww_44262b86\MSVCP80.dll
ModLoad: 0e2d0000 0e36b000 C:\WINDOWS\WinSxS\x86_Microsoft.VC80.CRT_1fc8b3b9a1e18e3b_8.0.50727.6195_x-ww_44262b86\MSVCR80.dll
(1cb0.1a34): Access violation - code c0000005 (first chance)
First chance exceptions are reported before any exception handling.
This exception may be expected and handled.
eax=0e47f8b4 ebx=051f0040 ecx=051f0040 edx=061e5764 esi=22820840 edi=07b10040
eip=03c2050c esp=0e47f5cc ebp=0e47f810 iopl=0 nv up ei pl nz na po nc
cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00010202
*** ERROR: Symbol file could not be found. Defaulted to export symbols for C:\Program Files\National Instruments\LabVIEW 2012\resource\tdcore_12_0.dll -
tdcore_12_0!LvVariant:etContents+0xac:
03c2050c 837e3100 cmp dword ptr [esi+31h],0 ds:0023:22820871=????????
I cannot really tell whats going on. Looking for some pointers.
Regards,
Abel. -
Event handler switch creation (for repeated use )
Im creating a hyperterminal like application which reads from serial port and writes into serial port.
The reading and writing works almost fine..I also wants to create some custom "Key controls" that will send some prestored commands to the serial port.
I currently implemented two commands "ESC" and "FLASH " in the Key controls menu..
I want to send these commands ESC and FLASH each time i click a button in the menu.
I used event handler for it..and put the event handler inside an always running while loop.
But the problem is I can send only these commands only for one time during execution.
Repeated pressing of switches doesnt cause any effects..
Can somebody help please???
Im using labview 6.1. If u modify VIs using higher versions i cant open here..kindly include a jpg screenshot inthat case.
Thanking you.
Stephen.
Attachments:
Serial Port(stable release)1.2.vi 113 KB
Init.vi 32 KB
Write.vi 44 KBHi Stephen,
in LV7.1 your events will be executed whenever I press one of the according switches...
Notes:
-Don't make several event structures. Instead make one event structure with several event cases. Read the context help for the event structure!
-I would suggest to set the mechanical action of both switches to "latch when pressed" instead of "switch..." to give a feedback to the user as the switch will be reset after reading it...
-Generally be more styleguide-conform! Use right-click on terminals to create controls/constants to avoid coercion dots (spot the red colored dots in the image?). Make error in/out in the lower left/right of the connector pattern. Avoid block diagrams larger than the screen (or what kind of monitor do you use?).
Edited:
Sorry for weird display. I have to get used to the new image gallery feature of the forum (and will use "image to the left" only on rare conditions). Btw. the preview looks different to the actual post
Message Edited by GerdW on 05-28-2009 06:59 AM
Best regards,
GerdW
CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
Kudos are welcome -
Event handler for STDIN input?
Hi,
This question will probably require a bit of context - I'm attempting to re-implement in java an application that's currently written in perl. The application is a server helper app that rewriters urls; it receives a request ID and a URL on stdin, does the necessary munging (which can require an external SOAP query), then returns the resulting rewritten URL.
Since the results can be asynchronous due to the need for external queries to build the result, this is currently a multithreaded perl app implemented using perl's POE framework to register an event handler for stdin. That handler fires each time a line of input is received, then feeds the query to a thread pool manager (POE::Component::Pool::Thread, which is conceptually similar to the Executor frameworks). The thread returns the result as a callback registered to another function in the main thread, which then populates the query/result to a cache then outputs the result (with the original query ID) on stdout. Since stdin input and the result callbacks are event-driven, there's no while(true) main loop or other blocking mechanism in the main thread. Unfortunately, it's perl-ness is causing problems due to perl's threading implementation (three words: "copy on init"), so we need to reimplement in a language with a more robust threading implementation (preferably one with copy-on-write for shared objects). So, Java it is.
So far everything's been good - Executor, Callables, and Futures work as I hoped they would for proper thread management, and the internal worker thread logic (XML processing, SOAP, regular expressions, etc) is proving rather simple to adapt. However, the main roadblock I'm hitting is that so far, I have not found a way to register any sort of event handler for STDIN input (or more specifically, InputStreamReader/BufferedStreamReader events). This could be due to search engine pollution - everything I see when I search for documentation on event listeners appears to be GUI-specific (buttons, menus, text areas/forms, etc). I'm just looking for a way to handle a line of STDIN, not a text area on a form.
Any pointers in the right direction will be much appreciated!rekoil wrote:
Maybe I need to rethink the design here...
The main reason I used a callback in the original perl is that there's a large cache structure that gets checked before the thread dispatch, and only cache misses get pushed to a thread for processing. Callbacks from the threads will then add its results to the cache. Thanks to perl's thread model, when I attempted to make the cache a shared structure - in perl, you have to explicitly mark as "shared" variables that you want visible to all threads - the structure wound up getting copied to every thread, and this gave the app an unacceptable memory footprint. So the solution was to use a callback in the main thread to update the cache.
I'm now thinking that if Java's thread model is a bit saner (i.e. a shared object doesn't get copied into every thread), then I could just have each thread update the cache, print its output to STDOUT directly, and avoid the need for the callback. I can then make my input loop simply a while() loop, waiting for the next input to dispatch. Sound sane?Yes I think so.
There is some of this I still don't entirely understand. Your loop sounds better now but it sounds to me like the process is this.
1) read from in
2) call some stuff on the basis of what came in
3) do work
4) workers produce things
5) things written back out
6) read back in??
If you're just going in/out then great. If you are going in/out/in then maybe some sort of PipedInput/Output Streams? It may well be that I got lost in your explanation in which case never mind. -
An event handler for several subclasses.
I've been trying to write an event handler that is parameterized by a window
being passed to it. The event handler is intended to handle the exception event
that occurs when the window completes. I have had problems trying to write this.
The scenario is as follows.
I have a task that listens to events that respresent requests for a window being
opened. On receiving these, it starts the window, also as an asynchronous task.
The windows that may be opened (say window classes B, C, and D) are all
subclasses of window class A. The event handler that I register for (after
instantiating the window) takes a window of class A as parameter. It responds to
the exception events for the Display() method of window passed in.
Now the problems I have encountered are as follows :
To allow the event handler to respond to the exception event of a window of
class A, class A has the exception event defined for it. To allow me to start a
window of class B where completion = event, I also have to define the same
exception event. This hides the return and exception for class A. The
implications of this in the event handler is that the event cannot be trapped
unless I cast the parameter passed in into class B on the ' when return_event '
line. This makes the event handler specific to class B.
(This situation is also presumable caused by the fact that each subclasses
overrides the Display method of window class A, and the exception event is
defined for the Display method.)
An alternative approach I tried was using interfaces. I defined the exception
event as an event on an interface. This was defined with the same parameters as
the exception events of classes B, C, and D would have (ie. the exception
event had two parameters - one of type GenericException, and one of ErrorMgr). I
then made classes B, C, and D implement the interface. The event handler
parameter would be the interface rather than class A. However class B would not
compile as the GenericException parameter for the event in the interface uses
the input mechanism, but the GenericException parameter for the exception event
in the display event of classes B, C, and D uses copy input. I have ben unable
to find a way to change the mechanism for event parameters.
Has anybody got any ideas as to how I may be able to achieve the goals of an
event handler that can respond the exception event of a number of subclasses.
Thanks
Steve Elvin
Systems Developer
Frontline Ltd.
UK.
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>Steve,
Try this. Have a method in your super class A , say StubDisplay
which processes the event loop.
Also make this method return Exception and/or completion events you
desire.
Instead of overriding Display() in your sublclasses, override this
StubDisplay method.
You need not have to redefine the exception/completion events in
your sublclasses B,C ..because they naturally inherit from the super class
A.
Using interfaces may not be a good idea in this case because, you
will be forced to implement them in your subclasses even if you dont
need them in some specific cases.
Good luck!
Ajith Kallambella M.
Forte Systems Engineer,
Internationational Business Corporation.
From: [email protected][SMTP:[email protected]]
Reply To: [email protected]
Sent: Wednesday, May 13, 1998 4:42 AM
To: [email protected]
Subject: An event handler for several subclasses.
I've been trying to write an event handler that is parameterized by a
window
being passed to it. The event handler is intended to handle the exception
event
that occurs when the window completes. I have had problems trying to write
this.
The scenario is as follows.
I have a task that listens to events that respresent requests for a window
being
opened. On receiving these, it starts the window, also as an asynchronous
task.
The windows that may be opened (say window classes B, C, and D) are all
subclasses of window class A. The event handler that I register for (after
instantiating the window) takes a window of class A as parameter. It
responds to
the exception events for the Display() method of window passed in.
Now the problems I have encountered are as follows :
To allow the event handler to respond to the exception event of a window
of
class A, class A has the exception event defined for it. To allow me to
start a
window of class B where completion = event, I also have to define the same
exception event. This hides the return and exception for class A. The
implications of this in the event handler is that the event cannot be
trapped
unless I cast the parameter passed in into class B on the ' when
return_event '
line. This makes the event handler specific to class B.
(This situation is also presumable caused by the fact that each subclasses
overrides the Display method of window class A, and the exception event is
defined for the Display method.)
An alternative approach I tried was using interfaces. I defined the
exception
event as an event on an interface. This was defined with the same
parameters as
the exception events of classes B, C, and D would have (ie. the
exception
event had two parameters - one of type GenericException, and one of
ErrorMgr). I
then made classes B, C, and D implement the interface. The event handler
parameter would be the interface rather than class A. However class B
would not
compile as the GenericException parameter for the event in the interface
uses
the input mechanism, but the GenericException parameter for the exception
event
in the display event of classes B, C, and D uses copy input. I have ben
unable
to find a way to change the mechanism for event parameters.
Has anybody got any ideas as to how I may be able to achieve the goals of
an
event handler that can respond the exception event of a number of
subclasses.
Thanks
Steve Elvin
Systems Developer
Frontline Ltd.
UK.
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
How can I execute an external program from within a button's event handler?
I am using Tomcat ApacheTomcat 6.0.16 with Netbeans 6.1 (with the latest JDK/J2EE)
I need to execute external programs from an event handler for a button on a JSF page (the program is compiled, and extremely fast compared both to plain java and especially stored procedures written in SQL).
I tried what I'd do in a standalone program (as shown in the appended code), but it didn't work. Instead I received text saying the program couldn't be found. This error message comes even if I try the Windows command "dir". I thought with 'dir' I'd at least get the contents of the current working directory. :-(
I can probably get by with cgi on Apache's httpd server (or, I understand tomcat supports cgi, but I have yet to get that to work either), but whatever I do I need to be able to do it from within the button's event handler. And if I resort to cgi, I must be able to maintain session jumping from one server to the other and back.
So, then, how can I do this?
Thanks
Ted
NB: The programs that I need to run do NOT take input from the user. Rather, my code in the web application processes user selections from selection controls, and a couple field controls, sanitizes the inoputs and places clean, safe data in a MySQL database, and then the external program I need to run gets safe data from the database, does some heavy duty number crunching, and puts the output data into the database. They are well insulated from mischeif.
NB: In the following array_function_test.pl was placed in the same folder as the web application's jsp pages, (and I'd tried WEB-INF - with the same result), and I DID see the file in the application's war file.
try {
java.lang.ProcessBuilder pn = new java.lang.ProcessBuilder("array_function_test.pl");
//pn.directory(new java.io.File("K:\\work"));
java.lang.Process pr = pn.start();
java.io.BufferedInputStream bis = (java.io.BufferedInputStream)pr.getInputStream();
String tmp = new String("");
byte b[] = new byte[1000];
int i = 0;
while (i != -1) {
bis.read(b);
tmp += new String(b);
getSelectionsDisplayTextArea().setText(getSelectionsDisplayTextArea().getText() + "\n\n" + tmp);
} catch (java.io.IOException ex) {
getSelectionsDisplayTextArea().setText(getSelectionsDisplayTextArea().getText() + "\n\n" + ex.getMessage());
}Hi Fonsi!
One way to execute an external program is to use the System Exec.vi. You find it in the functions pallet under Communication.
/Thomas -
Copying text to the clipboard in AVDocDidOpen event handler causes Acrobat 9 to crash
I'm trying to copy the filename of a document to the clipboard in a plugin with my AVDocDidOpen event handler. It works for the first file opened; however when a second file is opened, Acrobat crashes. The description in the application event log is: "Faulting application acrobat.exe, version 9.1.0.163, faulting module gdi32.dll, version 5.1.2600.5698, fault address 0x000074cc."
I've confirmed that the specific WIN32 function that causes this to happen is SetClipboardData(CF_TEXT, hText); When that line is commented out and remaining code is left unchanged, Adobe doesn't crash.
Is there an SDK function that I should be using instead of WIN32's SetClipboardData()? Alternately, are there other SDK functions that I need to call be before or after I call SetClipboardData()
Bill EricksonLeonard,
I tried it with both "DURING, HANDLER, END_HANDLER" and "try catch," as shown below. However, it doesn't crash in the event handler; it crashes later, so the HANDLER/catch block is never hit.
The string that's passed to SetClipboardData() is good, because I'm able to paste it into the filename text box of the print dialog when I try to create the "connector line" PDF. I also got rid of all the string manipulation and tried to pass a zero-length string to the clipboard but it still crashes.
Here's the code:
ACCB1 void ACCB2 CFkDisposition::myAVDocDidOpenCallback(AVDoc doc, Int32 error, void *clientData)
PDDoc pdDoc = AVDocGetPDDoc(doc);
char* pURL = ASFileGetURL(PDDocGetFile(annotDataRec->thePDDoc));
if (pURL) {
if (strstr(pURL, "file://") && strstr(pURL, "Reviewed.pdf")) {
// Opened from file system so copy filename to clipboard for connector line report
char myURL[1000];
strcpy(myURL, pURL);
ASfree(pURL); // Do this before we allocate a Windows handle just in case Windows messes with this pointer
pURL = NULL;
HGLOBAL hText = GlobalAlloc(GMEM_MOVEABLE, 1000);
if (hText) {
try
// Skip path info and go right to filename
char *pText = (char *)GlobalLock(hText);
char *pWork = strrchr(myURL,'/');
if (pWork) {
strcpy(pText, pWork+1);
} else {
strcpy(pText, myURL);
char *pEnd = pText + strlen(pText); // Get null terminator address
// Replace "%20" in filename with " "
pWork = strstr(pText, "%20");
while (pWork) {
*pWork = ' ';
memmove(pWork+1, pWork+3, (pEnd - (pWork+2)));
pWork = strstr(pText, "%20");
// Append a new file extension
pWork = strstr(pText, ".pdf");
*pWork = 0; // truncate the string before ".pdf"
strcat(pWork,".Connectors.pdf");
GlobalUnlock(hText); // Must do this BEFORE SetClipboardData()
// Write it to the clipboard
OpenClipboard(NULL);
EmptyClipboard();
SetClipboardData(CF_TEXT, hText); // Here's the culprit
CloseClipboard();
GlobalFree(hText);
} catch (char * str) {
AVAlertNote(str);
if (pURL)
ASfree(pURL); -
Unable to get automatic event handling for OK button.
Hello,
I have created a form using creatobject. This form contains an edit control and Search, Cancel buttons. I have set the Search buttons UID to "1" so it can handle the Enter key hit event. Instead its caption changes to Update when i start typing in the edit control and it does not respond to the Enter key hit. Cancel happens when Esc is hit.
My code looks like this -
Dim oCreationParams As SAPbouiCOM.FormCreationParams
oCreationParams = SBO_Application.CreateObject(SAPbouiCOM.BoCreatableObjectType.cot_FormCreationParams)
oCreationParams.UniqueID = "MySearchForm"
oCreationParams.BorderStyle = SAPbouiCOM.BoFormBorderStyle.fbs_Sizable
Dim oForm As SAPbouiCOM.Form = SBO_Application.Forms.AddEx(oCreationParams)
oForm.Visible = True
'// set the form properties
oForm.Title = "Search Form"
oForm.Left = 300
oForm.ClientWidth = 500
oForm.Top = 100
oForm.ClientHeight = 240
'// Adding Items to the form
'// and setting their properties
'// Adding an Ok button
'// We get automatic event handling for
'// the Ok and Cancel Buttons by setting
'// their UIDs to 1 and 2 respectively
oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
oItem.Left = 5
oItem.Width = 65
oItem.Top = oForm.ClientHeight - 30
oItem.Height = 19
oButton = oItem.Specific
oButton.Caption = "Search"
'// Adding a Cancel button
oItem = oForm.Items.Add("2", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
oItem.Left = 75
oItem.Width = 65
oItem.Top = oForm.ClientHeight - 30
oItem.Height = 19
oButton = oItem.Specific
oButton.Caption = "Cancel"
oItem = oForm.Items.Add("NUM", SAPbouiCOM.BoFormItemTypes.it_EDIT)
oItem.Left = 105
oItem.Width = 140
oItem.Top = 20
oItem.Height = 16
Dim oEditText As SAPbouiCOM.EditText = oItem.Specific
What changes do i have to make to get the enter key to work?
Thanks for your help.
Regards,
SheetalHello Felipe,
Thanks for pointing me to the correct direction.
So on refering to the documentation i tried out a few things. But I am still missing something here.
I made the following changes to my code -
oForm.AutoManaged = True
oForm.SupportedModes = 1 ' afm_Ok
oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
oItem.Left = 5
oItem.Width = 65
oItem.Top = oForm.ClientHeight - 30
oItem.Height = 19
oItem.SetAutoManagedAttribute(SAPbouiCOM.BoAutoManagedAttr.ama_Visible, 1, SAPbouiCOM.BoModeVisualBehavior.mvb_Default)
oButton = oItem.Specific
oButton.Caption = "OK"
AND
oForm.Mode = SAPbouiCOM.BoFormMode.fm_OK_MODE
oItem = oForm.Items.Add("1", SAPbouiCOM.BoFormItemTypes.it_BUTTON)
oItem.Left = 5
oItem.Width = 65
oItem.Top = oForm.ClientHeight - 30
oItem.Height = 19
oItem.AffectsFormMode = False
I get the same behaviour OK button changes to update and enter key does not work.
Could you please tell me find what is it that i am doing wrong?
Regards,
Sheetal -
Dropdown box - which event handler to use ?
I am having trouble with setting the readonly property (via Javascript) of the adjacent textbox to my dropdown box when the index value is a certain number.
I tried using MouseUp, MouseDown, and even OnBlur....but the readonly does not seem to be getting set to true or false consistently.
Could this be a timing issue ? The textbox that I am trying to control is the next tab-order control in the list of controls for this page.
This same logic is working fine in the MouseUp event handler for check boxes. So I am just wondering if this is a bug or must my implementation change to accomodate dropdown boxes ? For instance, should I move the logic to the Enter event handler of the textbox instead ? Can a control's own eventhandler set itself to readonly when it is the active form field ?After tons and tons of testing time, I've come to the conclusion that dropdowns are totally buggy in 11.0.07 release of Acrobat Pro.
Even if you set the "commit values immediately", you get the PRIOR selected item's value as the event value, not the CURRENT one.
This occurs in a Validate event handler script. I have not been able to use any other event handlers for a dropdown except the OnBlur....and then, for my purposes, IT'S TOO LATE !!!
This is totally worthless as I need to setFocus() and set fields to readonly based on the immediate dropdown offset or face value. -
Input value given on web page is not getting pickedup in event handler
Hi friends,
I have created one simple page in SE80 with program with flow logic option, in which I would like to show business partner details from BUT000 table with the input of partner number. But the thing is the input value(partner no.)which I am giving on web page is not getting picked up in selection in event handler though I am giving input value it is becoming initial while selecting. What could be the reason?
Below I am mentioning the code which I have written in even handler for OnInputProcessing event.
CASE EVENT_ID.
WHEN 'select'.
NAVIGATION->SET_PARAMETER( 'partner' ).
SELECT * FROM but000 INTO TABLE I_but000 WHERE partner BETWEEN partner AND partner1.
WHEN OTHERS.
ENDCASE.
Thanks in advance,
SteveHi Abhinav,
I tried with the one you posted. But it is giving run time error as shown below.
Note
The following error text was processed in the system CRD : Access via 'NULL' object reference not possible.
The error occurred on the application server crmdev_CRD_00 and in the work process 0 .
The termination type was: RABAX_STATE
The ABAP call stack was:
Method: ONINPUTPROCESSING of program CLO24DDFJW575HVAQVJ89KWHEHC9OCP
Method: %_ONINPUTPROCESSING of program CL_O24DDFJW575HVAQVJ89KWHEHC9OCP
Method: DO_REQUEST of program CL_BSP_PAGE===================CP
Method: ON_REQUEST of program CL_BSP_RUNTIME================CP
Method: IF_HTTP_EXTENSION~HANDLE_REQUEST of program CL_HTTP_EXT_BSP===============CP
Method: EXECUTE_REQUEST_FROM_MEMORY of program CL_HTTP_SERVER================CP
Function: HTTP_DISPATCH_REQUEST of program SAPLHTTP_RUNTIME
Module: %_HTTP_START of program SAPMHTTP
Regards,
Steve -
How do I create an Event Handler for an Execute SQL Task in SSIS if its result set is empty
So the precedence on my entire package executing is based on my first SELECT of my Table and an updatable column. If that SELECT results in an empty result set, how do I create an Event Handler to handle an empty result set?
A Newbie to SSIS.
I appreciate your review and am hopeful for a reply.
PSULionRPDepends upon what you want to do in the eventhandler. this is what you can do
Store the result set from the Select to a user variable.
Pass this user variable to a Script task.
In the Script task do whatever you want to do including failing the package this can be done by failing the script task, which in turns fails the package. something like
Dts.TaskResult = Dts.Results.Failure
Abhinav http://bishtabhinav.wordpress.com/ -
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
Maybe you are looking for
-
If my wife and I have two seperate itunes accounts can we both use home sharing at the same time on different computers to view each others librarys or is it one or the other only
-
My slides use a subtle gradient on the background. I noticed, however, in Keynote 6.1 all my gradients are no longer smooth with gradual transitions. Instead, I see bars, as illustrated by the attached example. The bars exist in horizontal, vertical,
-
I need help with this zip file so that I can let Dreamweaver do what it do.
I need help. I bought a web design from a company called Envato. And file is zip, I heard that you use Abobe Illustrator to unzip the file, but I've tried that and got nothing. I've just download Dreamweaver with hopes that would work and again nothi
-
i got the game tap studio after Christmas for my ipod touch, I also bought the "Pro" Upgrade since then i have bought a second hand iphone when i restored my iphone to my ipod backup i got the game but not the "pro" upgrade Is there anyway to restore
-
IPhone 3G with 2.1 firmware lost all music
Hi, My details: Mac OSX 10.4.11 iPhone 3G with 2.1 firmware iTunes 8.0 (35) Before anybody replies and says this has already been solved, I would like to say the following. I have searched forums and the internet for this. Many different sites recomm