Java Forum / General / August 2006
Java and Microsoft Windows
Peter Olcott - 13 Aug 2006 16:41 GMT Someone told me that Java always makes all of its graphical user interface controls from scratch, and never implements its controls as Microsoft Windows controls, is this always true, even for applets that run inside of Internet Explorer?
Michael Rauscher - 13 Aug 2006 16:45 GMT Peter Olcott schrieb:
> Someone told me that Java always makes all of its graphical user interface > controls from scratch, and never implements its controls as Microsoft Windows > controls, is this always true, even for applets that run inside of Internet > Explorer? AWT uses native components, SWT too. Swing uses lightweight controls, so they're painted by Swing.
Bye Michael
Peter Olcott - 13 Aug 2006 16:51 GMT > Peter Olcott schrieb: >> Someone told me that Java always makes all of its graphical user interface [quoted text clipped - 7 lines] > Bye > Michael So does Java most often use Microsoft Windows controls (is this what you mean by native components) or does it most often build them from scratch itself? (I am not a Java programmer so I don't know if AWT is the foundation on which Java is based, or some obscure technology that is rarely used).
Michael Rauscher - 13 Aug 2006 17:15 GMT Peter Olcott schrieb:
> So does Java most often use Microsoft Windows controls (is this what you mean by > native components) or does it most often build them from scratch itself? (I am > not a Java programmer so I don't know if AWT is the foundation on which Java is > based, or some obscure technology that is rarely used). First of all, Java is a language. Neither AWT nor Swing are part of the language but of the user interface libraries of the "Java Platform".
AWT was the first windowing toolkit (Abstract Windowing Toolkit - AWT) included in the Java Platform. Later, Swing was introduced.
AWT provides only a very basic set of native components (components that are provided by the underlying system, e. g. Microsoft Windows). Most probably you'll find just a few applications built upon pure AWT.
SWT (Standard Widget Toolkit) is a 3rd party library that is part of the Eclipse project. It also uses native components but I don't know if one can use SWT effectively in applets.
Swing is based on AWT but paints all components by itself. This way different Look & Feels are supported.
But why do you want to know that?
Bye Michael
Peter Olcott - 13 Aug 2006 17:22 GMT > Peter Olcott schrieb: >> So does Java most often use Microsoft Windows controls (is this what you mean [quoted text clipped - 15 lines] > Eclipse project. It also uses native components but I don't know if one can > use SWT effectively in applets. Which of these three technologies is used most often in web applets?
> Swing is based on AWT but paints all components by itself. This way different > Look & Feels are supported. > > But why do you want to know that? I am working on an application that must interface with every other application type.
> Bye > Michael Andrew Thompson - 13 Aug 2006 17:37 GMT > "Michael Rauscher" <michlmann@gmx.de> wrote in message ..
> Which of these three technologies is used most often in web applets? If the authors have the mistaken impression that coding in AWT will provide support for 'all browsers' (read 'IE + the other one'), they might stick to the limited number of GUI components available in the AWT.
If the authors are realistic and need split panes, trees, table support.., they will use either Swing or SWT - which both have a richer GUI component set than AWT.
Swing & AWT both come 'packaged with Java' and therefore you can get a Swing/AWT based applet that is <10Kb.
If using SWT in an applet, OTOH, the SWT jar needs to be downloaded as a separate archive (transparently to the user - but taking longer). I have neve seen an actual SWT based applet.
For that reason I would say - the majority (ever increasing) are Swing, a shrinking number are AWT, & theoretically, you might find one or two that use SWT.
> > But why do you want to know that? > > I am working on an application that must interface with every other application > type. What about Swing/SWT/AWT *applications*?
Andrew T.
Peter Olcott - 13 Aug 2006 17:42 GMT >> "Michael Rauscher" <michlmann@gmx.de> wrote in message > .. [quoted text clipped - 23 lines] > are Swing, a shrinking number are AWT, & theoretically, > you might find one or two that use SWT. The current majority of web applets use Swing technology?
>> > But why do you want to know that? >> [quoted text clipped - 3 lines] > > What about Swing/SWT/AWT *applications*? Yes, and even YeOlde MSDOS Command Line applications. I must be able to interface to anything.
> Andrew T. Michael Rauscher - 13 Aug 2006 19:56 GMT Peter Olcott schrieb:
> The current majority of web applets use Swing technology? With respect to applets that use components that goes beyond simple drawing/animation, I'd say yes.
Perhaps you could explain to me what you mean with the following statement you wrote in response to Jeffrey Schwab:
> I have invented a way for one application to interface with any other > application. Remote controlling, embedding, ... ?
Bye Michael
Peter Olcott - 13 Aug 2006 20:02 GMT > Peter Olcott schrieb: >> >> The current majority of web applets use Swing technology? > > With respect to applets that use components that goes beyond simple > drawing/animation, I'd say yes. What about ordinary business applications and applets?
> Perhaps you could explain to me what you mean with the following statement you > wrote in response to Jeffrey Schwab: [quoted text clipped - 3 lines] > > Remote controlling, embedding, ... ? Universal GUI Scripting Language that can "see" anything on the screen by processing the screen pixels in real time using a deterministic finite automaton.
> Bye > Michael Jeffrey Schwab - 13 Aug 2006 20:26 GMT >>> I have invented a way for one application to interface with any other >>> application. [quoted text clipped - 3 lines] > processing the screen pixels in real time using a deterministic finite > automaton. Er... Like java.awt.Robot?
http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html
Peter Olcott - 13 Aug 2006 20:34 GMT >>>> I have invented a way for one application to interface with any other >>>> application. [quoted text clipped - 7 lines] > > http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html Can it win live action video games on MS Windows and Apple OS? Can it control MS DOS 3.1 applications? Can it always fully automate any application on any platform?
Since you referred to it as java.awt.Robot, I would estimate that it would have a hard time with Swing technology, thus it would not even be universal on its own platform, much less every platform.
Jeffrey Schwab - 13 Aug 2006 20:44 GMT >>>>> I have invented a way for one application to interface with any other >>>>> application. [quoted text clipped - 7 lines] > > Can it win live action video games on MS Windows and Apple OS? Not on its own, of course. You'd have to write some code specific to the game you want to play. If you've written a class that woke up one day and decided to get its own avatar in Second Life, I want a copy. :)
> Can it control MS DOS 3.1 applications? Not sure what you mean... Are you talking about Windows 3.1, or Apple DOS 3.1? If you're talking about your program sharing a 286 with actual DOS, my hat's off to you. I wouldn't want to squeeze the J2SE into low RAM. :)
> Can it always fully automate any application on any platform? That's a pretty bold claim, but if we're talking about automating GUI functions, I would guess Robot is the most portable engine you're likely to find.
> Since you referred to it as java.awt.Robot, I would estimate that it would have > a hard time with Swing technology, thus it would not even be universal on its > own platform, much less every platform. java.awt is just the package where it lives, which makes sense because it needs tight integration with the host environment. Sorry, I guess I wasn't clear enough... Why not read the documentation for yourself?
Peter Olcott - 13 Aug 2006 21:42 GMT >>>>>> I have invented a way for one application to interface with any other >>>>>> application. [quoted text clipped - 11 lines] > you want to play. If you've written a class that woke up one day and decided > to get its own avatar in Second Life, I want a copy. :) Unless it implements a deterministic finite automaton there is no possible way that it can recognize the arbitrary sets of pixels that video games produce in real time. If it does implement a deterministic finite automaton, to recognize arbitrary sets of pixels in real time for the purpose of controlling another application, then my patent would probably be invalidated by this prior art.
>> Can it control MS DOS 3.1 applications? > > Not sure what you mean... Are you talking about Windows 3.1, or Apple DOS > 3.1? If you're talking about your program sharing a 286 with actual DOS, my > hat's off to you. I wouldn't want to squeeze the J2SE into low RAM. :) 1981 Microsoft DOS applications still run under the current versions of MS Windows XP.
>> Can it always fully automate any application on any platform? > > That's a pretty bold claim, but if we're talking about automating GUI > functions, I would guess Robot is the most portable engine you're likely to > find. Can it see the exact location and current state of every graphical user interface control element on MS Windows (from 3.1 to XP), and Java Swing?
>> Since you referred to it as java.awt.Robot, I would estimate that it would >> have a hard time with Swing technology, thus it would not even be universal [quoted text clipped - 3 lines] > needs tight integration with the host environment. Sorry, I guess I wasn't > clear enough... Why not read the documentation for yourself? So then it can see the current state and exact location of every Swing control element?
Jeffrey Schwab - 13 Aug 2006 21:45 GMT >>>>>>> I have invented a way for one application to interface with any other >>>>>>> application. [quoted text clipped - 41 lines] > So then it can see the current state and exact location of every Swing control > element? I hope you won't be offended, but may I ask how old you are?
Peter Olcott - 13 Aug 2006 21:58 GMT >>>>>>>> I have invented a way for one application to interface with any other >>>>>>>> application. [quoted text clipped - 44 lines] > > I hope you won't be offended, but may I ask how old you are? Here is the actual patent, my age is not relevant to the subject at hand. http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=% 2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=7046848.PN.&OS=PN/7046848&RS=PN/7 046848 Can you answer the questions now?
Jeffrey Schwab - 14 Aug 2006 00:23 GMT > Can you answer the questions now? I'm trying, and so are several other people, just to try to make the group welcoming. Your questions are extremely vague though; you're not making yourself easy to help. :) Do you still have specific questions you would like answered?
Btw, your tone comes across as argumentative. It's almost like you're angry with other people for not appreciating the genius that is Peter Olcott. Most of the people here are also pretty bright, so you might want to pretend for a moment that you're speaking with your peers instead of a bunch of hostile inferiors. Catch more software developers with honey, to paraphrase. :)
Peter Olcott - 14 Aug 2006 05:43 GMT >> Can you answer the questions now? > [quoted text clipped - 8 lines] > moment that you're speaking with your peers instead of a bunch of hostile > inferiors. Catch more software developers with honey, to paraphrase. :) I haven't had nearly the same degree of experience with my interpersonal communication skills, as I have had with my software development skills. I don't mean to seem hostile, and I know that my Java development skills are by far inferior to most everyone here.
I have about 17,000 hours and most of my life savings invested in my current project, so I tend to have a little emotional attachment to it. I desperately want this project to succeed. This may tend to make me seem hostile when someone brings up the possibility that there are already alternatives that would make this project useless. If there are alternatives that do make this project useless, then I need to know about these, yet, these must be very rigorously analyzed.
The primary benefit that my technology provides is the possibility of a universal scripting language. To the best of my knowledge there is no other technology that can possibly provide a scripting language that is nearly as universal as that provided by my technology. Now is the time that I must definitively ascertain this point.
I did not come to this forum to definitively ascertain this point. I came to this forum to validate one single aspect of this point. The single aspect of this point that I came to validate is the difficulty of providing a scripting language that could completely automate any possible Java program.
From the best that I can tell, from the expert advice that I received here, even this tiny task would tend to be difficult. The specific aspect of this task that I must analyze is the difficulty of determining the current state and exact location of any graphical user interface control. Since Java has at least three different technologies for creating these controls, a first estimate from my limited point of view would be that even this tiny subtask would require a hodge podge conglomeration of these three technologies. Definitively ascertaining the precise degree of truth of this last statement would fulfill my whole need for being here.
Chris Smith - 14 Aug 2006 23:06 GMT > From the best that I can tell, from the expert advice that I received here, even > this tiny task would tend to be difficult. The specific aspect of this task that [quoted text clipped - 3 lines] > limited point of view would be that even this tiny subtask would require a hodge > podge conglomeration of these three technologies. Perhaps I can provide a better answer. There are three commonly used GUI technologies, as you've gathered, but we could be more explicit about the names. They are:
- Plain AWT - AWT with Swing - SWT
Two of these are based on AWT, and the third is based on SWT. Both AWT and SWT provide the ability to determine the exact location and state of user interface controls from within that application, if you already have a reference to the user interface control. From outside of the application, you'd have to either act like a debugger and ensure the app is running in debug mode, or obtain a handle to a JVM instance via JNI. Neither can be done uncooperatively. So to do this with Java APIs, you need to at least have the cooperation of the application that you wish to interact with.
It is not reliable, at least in AWT or AWT/Swing, and probably in SWT as well, to ask the operating system. Lightweight controls in AWT (and this includes all Swing controls except the top-level containers) are not exposed to the operating system, so the OS won't be able to give you their location, nor even know that the control is there. So it is probably not worthwhile to pursue the route of asking the OS.
You seem to be interested in recognizing controls based on the equivalent of a screen shot. In this case, you actually need to consider a larger number of cases: for one case per platform (and possibly per JVM implementation) for plain AWT and for SWT, and one case per look and feel for Swing. Since Swing has pluggable look and feels, a component can literally look like anything in the world, depending on which look and feel is in use. Of course, custom components may look different for any of the above.
Finally, you keep mentioning your patent. That really sucks. Please don't be part of the problem.
 Signature Chris Smith - Lead Software Developer / Technical Trainer MindIQ Corporation
Peter Olcott - 15 Aug 2006 00:06 GMT >> From the best that I can tell, from the expert advice that I received here, >> even [quoted text clipped - 44 lines] > Finally, you keep mentioning your patent. That really sucks. Please > don't be part of the problem. I have a total of 30,000 hours and most of my life's savings invested in four different software inventions. I work about 85 hours a week. Each of these ideas focused on deriving unique ways to save businesses money. This one is the first one with market potential.
I have to have patent protection otherwise a big software company will simply take my idea, and squish my efforts and life savings with their unlimited development and advertising budget.
Only because of the possibility of some protection from this do tiny little one-man development companies have any significant chance of surviving.
Without patent protection it would not be worth the risk, therefore many innovations would never be created. A patent only lasts 17 years, and then its public domain.
Chris Smith - 15 Aug 2006 00:47 GMT > I have to have patent protection otherwise a big software company will simply > take my idea, and squish my efforts and life savings with their unlimited > development and advertising budget. > > Only because of the possibility of some protection from this do tiny little > one-man development companies have any significant chance of surviving. Plenty of one-person development companies survive. I'm sorry if you don't think you can be one of them. Obstructing the rest of the world is still not an ethical response.
> Without patent protection it would not be worth the risk, therefore many > innovations would never be created. A patent only lasts 17 years, and then its > public domain. Only 17 years? Do you realize what software looked like 17 years ago? Do you realize what it would look like now if everyone had patented what they did 17 years ago?
You are part of the problem.
 Signature Chris Smith - Lead Software Developer / Technical Trainer MindIQ Corporation
Patricia Shanahan - 15 Aug 2006 01:04 GMT >> I have to have patent protection otherwise a big software company will simply >> take my idea, and squish my efforts and life savings with their unlimited [quoted text clipped - 16 lines] > > You are part of the problem. Confession: I'm a co-inventor on half a dozen computer architecture patents, only one of which has passed the 17 year limit.
I don't see anything unethical about my employer wanting ownership of a design they paid for.
Patricia
Peter Olcott - 15 Aug 2006 01:50 GMT >>> I have to have patent protection otherwise a big software company will >>> simply take my idea, and squish my efforts and life savings with their [quoted text clipped - 24 lines] > > Patricia If it was not for patent protection we would still be in the dark ages, no light bulb would ever exist. Patent protection is provided to put enough incentive in the unreasonably grueling efforts required to significantly advance the current state of technology.
Chris Smith - 15 Aug 2006 23:24 GMT > Confession: I'm a co-inventor on half a dozen computer architecture > patents, only one of which has passed the 17 year limit. > > I don't see anything unethical about my employer wanting ownership of a > design they paid for. This is getting well off-topic (which is my fault... sorry), but neither do I. It is when your employer claims legal rights over people who independently happen to do things the same way that things get shaky. Empirically, though, this tends not to happen so much with physical inventions. It happens daily with software patents. For this reason, rather than for any theoretical distinction, I object more to software patents than physical patents. I would agree, though, if you wanted to say that the real problem in both cases is that the patent office needs to have the expertise to decide whether the advantages to society outweigh the disadvantages for a given patent before they grant it.
In any case, I shoulda kept my mouth shut and just not provided any help.
 Signature Chris Smith
Peter Olcott - 16 Aug 2006 16:51 GMT >> Confession: I'm a co-inventor on half a dozen computer architecture >> patents, only one of which has passed the 17 year limit. [quoted text clipped - 12 lines] > to have the expertise to decide whether the advantages to society > outweigh the disadvantages for a given patent before they grant it. That is not how patents work. They never make this kind of determination. All that they are required to determine is whether or not anyone has come up with this idea before, and whether or not this idea is obvious in light of prior ideas. Since 98% of patents never make any money, they would be wasting alot of time trying to figure out the degree of benefit to society, 98% of the time there is no benefit to anyone. If software patents are not allowed, then no one would spent the 30,000 and hundreds of thousands of dollars deriving the technology of my patent. Thus society would never reap the benefit of this technology. Preliminary estimates indicate that this technology is able save business billions of dollars every year. If it was not for software patents these billions of dollars would simply be wasted. Seventeen years from now this technology will be public domain.
> In any case, I shoulda kept my mouth shut and just not provided any > help. Chris Smith - 16 Aug 2006 17:12 GMT > That is not how patents work. They never make this kind of determination. All > that they are required to determine is whether or not anyone has come up with > this idea before, and whether or not this idea is obvious in light of prior > ideas. Unfortunately, you are right that the patent office never makes any kind of judgement about whether it's a good idea to grant a patent before they do so. They are supposed to do so; indeed, the constitution grants them their power only for the purpose of advancing the useful arts and sciences. Current regulations say that they fulfill that duty by assessing whether an idea follows naturally from the current state of knowledge, or is truly a breakthrough. The obviousness standard, though, has been watered down to the point that it is a joke. This is partly due to our inability to fund the patent office (in real dollars, the office spends per patent less than 3% what it did in the first decade after it was formed, and less than it has at any time in history), and partly due to the mistaken concept that patents somehow fit under property rights.
As for your "invention", let's just say that (I didn't realize this when you first posted here, but have since looked around) you are clearly something of a crackpot, and your billions of dollars number is hinging on completely laughable. I didn't look at your patent, but you apparently didn't publish anything about it so it must not be too awfully theoretically interesting. Yes, it still appears you are part of the problem; albeit at least not maliciously so.
 Signature Chris Smith
Peter Olcott - 16 Aug 2006 23:19 GMT >> That is not how patents work. They never make this kind of determination. All >> that they are required to determine is whether or not anyone has come up with [quoted text clipped - 18 lines] > you first posted here, but have since looked around) you are clearly > something of a crackpot, and your billions of dollars number is hinging I thought that this sounded unreasonably high myself until I actually ran the numbers. It is estimated that my technology will save 1/3 of business computer users at least 5 minutes a day, there are 75 million business users in the United States alone (US Census data 2003). This boils down to 25 million people times 21 hours per year, or 525 million labor hours saved per year. Even at minimum wage this is billions of dollars. The crucial assumption upon which this result rests is the estimate of five minutes for 25 million people. I verified a marketing research time and motion study design with three Ph.D. marketing research professors, and all three said that the design was good, and would seem to produce valid statistically generalizable results. I will perform at least one of these studies before I launch.
> on completely laughable. I didn't look at your patent, but you > apparently didn't publish anything about it so it must not be too > awfully theoretically interesting. Yes, it still appears you are part > of the problem; albeit at least not maliciously so. Peter Olcott - 15 Aug 2006 01:47 GMT >> I have to have patent protection otherwise a big software company will simply >> take my idea, and squish my efforts and life savings with their unlimited [quoted text clipped - 17 lines] > > You are part of the problem. My software technology will save businesses billions of dollars every year. If I could not get patent protection, I would have never developed it. No one else would have ever gotten around to developing it, thus society comes out many billions of dollars ahead only because of patent protection.
If it was not for patent protection most of the technology that you see today would not exist. It would have been too risky to spend enough time to get it fully developed. Even the automobile might never exist, if it was not for patent protection. Edison might have never bothered to invent the light bulb, if he knew someone else could take his idea for free. Why work eighteen hours a day for many years for free? Why bother?
Peter Olcott - 13 Aug 2006 22:25 GMT >>>>>> I have invented a way for one application to interface with any other >>>>>> application. [quoted text clipped - 31 lines] > needs tight integration with the host environment. Sorry, I guess I wasn't > clear enough... Why not read the documentation for yourself? To know that a system lacks a capability requires a much deeper understanding than finding out if a system has a capability. This deeper understanding takes a lot of time. I am already working 85 hours a week, so I find that simply asking people that already know these things is a much more cost-effective use of my time.
Stefan Schmiedl - 13 Aug 2006 20:48 GMT > Since you referred to it as java.awt.Robot, I would estimate that it > would have a hard time with Swing technology, thus it would not even be > universal on its own platform, much less every platform. Don't confuse the methods used to implement its functions with the scope of those functions.
How does your solution interact with a native RetroForth system running without multi-MB OS on the bare metal?
s.
Peter Olcott - 13 Aug 2006 21:45 GMT >> Since you referred to it as java.awt.Robot, I would estimate that it >> would have a hard time with Swing technology, thus it would not even be [quoted text clipped - 7 lines] > > s. When the slave application is running as a segregated part of this multi-megabyte OS it can interface perfectly.
Stefan Schmiedl - 13 Aug 2006 22:03 GMT >>> Since you referred to it as java.awt.Robot, I would estimate that it >>> would have a hard time with Swing technology, thus it would not even be [quoted text clipped - 10 lines] > When the slave application is running as a segregated part of this > multi-megabyte OS it can interface perfectly. That is the difference between *every platform* and *current versions of Windows*.
FYI: Many DOS-based applications interfacing directly to the hardware do *not* run on modern Windows systems any more, as the access has been severely restricted (already with NT4, IIRC).
Take care, s.
Peter Olcott - 13 Aug 2006 22:10 GMT >>>> Since you referred to it as java.awt.Robot, I would estimate that it >>>> would have a hard time with Swing technology, thus it would not even be [quoted text clipped - 20 lines] > Take care, > s. By every platform, I mean MS Windows including all MSDOS applications that still run under MS Windows, also any software that will run under the current versions of Apple OS, or Linux. Basically any software that will run under any modern GUI OS.
Peter Olcott - 13 Aug 2006 22:33 GMT >>>> I have invented a way for one application to interface with any other >>>> application. [quoted text clipped - 7 lines] > > http://java.sun.com/j2se/1.5.0/docs/api/java/awt/Robot.html I didn't see anything that enabled it to form anything like the basis for a universal scripting language in this documentation. Although there is capability for operating the user interface input hardware, there did not seem to be any capability to "see" graphical objects on the screen. Capturing the screen is not at all like intelligently recognizing the current state and location of graphical user interface control elements. Without this ability, no universal graphical user interface scripting language would be possible. Perhaps there are many more deeper levels to this documentation than this link seems to indicate.
Michael Rauscher - 13 Aug 2006 23:00 GMT Peter Olcott schrieb:
>> Peter Olcott schrieb: >>> The current majority of web applets use Swing technology? >> With respect to applets that use components that goes beyond simple >> drawing/animation, I'd say yes. > > What about ordinary business applications and applets? Applications: Swing.
Applets: here you have to separate between (I'd say) decorative applets that are used to beautify homepages and applets that are part of serious applications. The former are most often implemented using AWT, the latter use Swing. IMO.
>> Perhaps you could explain to me what you mean with the following statement you >> wrote in response to Jeffrey Schwab: [quoted text clipped - 6 lines] > processing the screen pixels in real time using a deterministic finite > automaton. Ah, and you want to know if it's possible to do the same using Java? I'd say 'yes' with respect to the language Java. E.g. it shouldn't be a big problem using JNI (the interface to the native system) to get window handles and so on.
Bye Michael
Peter Olcott - 13 Aug 2006 23:11 GMT > Peter Olcott schrieb: >>> Peter Olcott schrieb: [quoted text clipped - 26 lines] > using JNI (the interface to the native system) to get window handles and so > on. The technology that I invented can obtain the current location and state of graphical user interface controls for literally anything. I want to know the degree to which another set of methods might be able to accomplish this same result, in other words the degree of competition that I might have in the future.
Is there any technology(ies) within Java that can always obtain the exact state and current location of any Java based controls? What is the name of this technology(ies)
> Bye > Michael Tom Cole - 14 Aug 2006 00:47 GMT > The technology that I invented can obtain the current location and state of > graphical user interface controls for literally anything. I want to know the > degree to which another set of methods might be able to accomplish this same > result, in other words the degree of competition that I might have in the > future. So what if my Swing application had a picture of a button, but no actual button? Would it think it was a button?
What if my L&F displayed buttons or textfields with no identifying marks other than just text? How would your technology know the difference? Would it think it was just text?
You see, my Swing application creates only a single native OS peer, and that's a window. There are no other component peers. So you can't get to my other components via the OS, you can only attempt a screen scrape and hope that my buttons and textfields, etc. look the way you think a button should look like.
> Is there any technology(ies) within Java that can always obtain the exact state > and current location of any Java based controls? What is the name of this > technology(ies) None.
Peter Olcott - 14 Aug 2006 05:55 GMT >> The technology that I invented can obtain the current location and state of >> graphical user interface controls for literally anything. I want to know the [quoted text clipped - 4 lines] > So what if my Swing application had a picture of a button, but no > actual button? Would it think it was a button? It would consider anything at all to be a graphical user interface control iff (if and only if) it was specifically informed that it is to be considered a graphical user interface control. If you make a bitmap that is identical to the bitmap of a legitimate graphical user interface control, then it would be required to use other contextual information to disambiguate this case.
> What if my L&F displayed buttons or textfields with no identifying > marks other than just text? How would your technology know the > difference? Would it think it was just text? Typically textfields are demarked in one way or another. If you don't somehow identify a textfield as a text field, then a human user will not know that it is a text field. If there is enough displayed on the screen for a person to tell that it is a text field, then various methods can be used so that my technology would identify it as a text field as well. Generally if its good enough for a person, then its good enough for my technology.
> You see, my Swing application creates only a single native OS peer, and > that's a window. There are no other component peers. So you can't get > to my other components via the OS, you can only attempt a screen scrape > and hope that my buttons and textfields, etc. look the way you think a > button should look like. It would simply look at your specific button, then (when told) would know that this bitmap in this context is a button.
>> Is there any technology(ies) within Java that can always obtain the exact >> state >> and current location of any Java based controls? What is the name of this >> technology(ies) > > None. That is very good news for me. Let's see how many others concur.
Stefan Schmiedl - 14 Aug 2006 06:43 GMT > Typically textfields are demarked in one way or another. If you don't > somehow identify a textfield as a text field, then a human user will not [quoted text clipped - 3 lines] > Generally if its good enough for a person, then its good enough for my > technology. Then take a look at Squeak's Morphic framework, please. It contains a sample of a TextMorph presenting rotated text in an arbitrary shape. A human will recognize that this is a "text field".
How would you recognize a hyperlink if it was presented without decoration and only revealed itself upon being touched by the mouse pointer? A human would learn to sweep the mouse over the page to discover active spots. At least I have done so, as I tend to click on corporate logos in top web page corners in the hope of being transferred to the home page.
Contextual information is not rectangular.
s.
Peter Olcott - 14 Aug 2006 06:57 GMT >> Typically textfields are demarked in one way or another. If you don't >> somehow identify a textfield as a text field, then a human user will not [quoted text clipped - 7 lines] > sample of a TextMorph presenting rotated text in an arbitrary shape. A > human will recognize that this is a "text field". My process is deterministic, only a stochastic process could recognize this sort of thing, but, with stochastic processes, the 100% reliability and real-time response rate goes away. My system could recognize any possibly rotated text, iff it was provided an exact sample of the end-result of the rotation, and informed of the intended value associated with this pixel pattern.
> How would you recognize a hyperlink if it was presented without decoration > and only revealed itself upon being touched by the mouse pointer? A human > would learn to sweep the mouse over the page to discover active spots. At > least I have done so, as I tend to click on corporate logos in top web > page corners in the hope of being transferred to the home page. Same method for my system. The goal here is a universal scripting language. Scripts written in this scripting language would be written by people that understand the nature and details of what is being scripted. Because of this the author would generally know in advance which links are relevant to the task at hand, and the pixel pattern associated with these links. Alternatively the system could scan the whole page noting all of the hotspots from changes to the pixel patterns displayed on the screen.
> Contextual information is not rectangular. > > s. Stefan Schmiedl - 14 Aug 2006 07:16 GMT >>> Typically textfields are demarked in one way or another. If you don't >>> somehow identify a textfield as a text field, then a human user will [quoted text clipped - 14 lines] > end-result of the rotation, and informed of the intended value > associated with this pixel pattern. Speaking of reliability ... have you noticed the last sentence of claim 15 on the web page of your patent? Does your software really "invoice" the second program?
>> How would you recognize a hyperlink if it was presented without >> decoration and only revealed itself upon being touched by the mouse [quoted text clipped - 9 lines] > are relevant to the task at hand, and the pixel pattern associated with > these links. Then what's the advantage to just parsing the HTML? In this specific context?
> Alternatively the system could scan the whole page noting > all of the hotspots from changes to the pixel patterns displayed on the > screen. Do you want to move the mouse over every pixel? That would be about a million on my screen, and you'd have to *wait* for a possibly slow browser (running on a multitasked system) to really respond to the event. There goes the real time response.
>> Contextual information is not rectangular. Maybe we just have different notions of "universal", Horatio.
s
Peter Olcott - 14 Aug 2006 15:26 GMT >>>> Typically textfields are demarked in one way or another. If you don't >>>> somehow identify a textfield as a text field, then a human user will [quoted text clipped - 18 lines] > on the web page of your patent? Does your software really "invoice" the > second program? I did not notice this mistake. I just confirmed that this mistake was made by the UTPTO. All of my material that was sent to them says "invoke". I will have them fix this immediately.
>>> How would you recognize a hyperlink if it was presented without >>> decoration and only revealed itself upon being touched by the mouse [quoted text clipped - 11 lines] > > Then what's the advantage to just parsing the HTML? In this specific context? The goal is to provide a UNIVERSAL scripting language solution, and since HTML is only one of many possible interfaces it would be far from universal. My technology enables a universal scripting language for any application that takes its input from one or more user input hardware devices and interacts with the user through the display screen.
>> Alternatively the system could scan the whole page noting >> all of the hotspots from changes to the pixel patterns displayed on the [quoted text clipped - 4 lines] > on a multitasked system) to really respond to the event. There goes the real > time response. It has the same limitations as a person, if a link is not visually identified to a person, most people will miss it too.
>>> Contextual information is not rectangular. > > Maybe we just have different notions of "universal", Horatio. > > s Patricia Shanahan - 14 Aug 2006 15:34 GMT ...
> It has the same limitations as a person, if a link is not visually identified to > a person, most people will miss it too. Remember that people have natural language understanding capability. A piece of text can say something that indicates to a human that it is likely to be a link. To attain universality, your program has to work regardless of the choice of natural language. What is the Chinese for "click here for ..."?
Even among web pages with distinctive formatting for links, the difference can be anything.
Patricia
Peter Olcott - 14 Aug 2006 15:43 GMT > ... >> It has the same limitations as a person, if a link is not visually identified [quoted text clipped - 10 lines] > > Patricia UNIVERSAL meaning that it will work correctly for every application on any platform. Any scripting language requires a programmer to tell it what to do. It can recognize all the text on the screen simultaneously while recognizing everything else, regardless of the size, color, or font (or even language) of the graphical objects.
Martin Gregorie - 14 Aug 2006 21:15 GMT >> ... >>> It has the same limitations as a person, if a link is not visually identified [quoted text clipped - 15 lines] > everything else, regardless of the size, color, or font (or even language) of > the graphical objects. In that case, why are you concerned with the innards of the Java GUI? From the previous paragraph it sounds like you're just working with the pixel array scraped from the display device and therefore your invention shouldn't care at all about the programming language, support libraries or operating system.
If I've understood you correctly it should also work with the content of a window displaying the output from an application run remotely under the control of any of the following:
- PC Anywhere (remote Windows display) - VNC (*nix graphical) - an X-term server, e.g. exceed (both *nix graphical and *nix console textual output) - telnet (*nix textual output) - ssh client (*nix textual output) - IBM 3270 (mainframe textual terminal emulator) - IBM 5250 (AS/400 textual terminal emulator) - Kermit (textual output from an application under ANY remote OS that supports Kermit)
I'm using *nix as a shorthand for any UNIX-like OS: in other words Linux, Mac OS-X, AIX, HP-UX or any other SVR4 UNIX.
Have I understood you correctly?
 Signature martin@ | Martin Gregorie gregorie. | Essex, UK org |
Michael Rauscher - 14 Aug 2006 04:44 GMT Hi,
Peter Olcott schrieb:
> Is there any technology(ies) within Java that can always obtain the exact state > and current location of any Java based controls? Perhaps you're more familiar with C.
So, what would you answer if I asked you the same question with respect to C? Probably you'd tell me, that C doesn't even know anything of controls. C is a language. Sure, there are libraries like the MFC but these aren't part of the language C.
The same applies to Java. There are libraries like AWT, Swing and SWT but they aren't part of the language Java.
If the Java runtime libraries don't offer what you need, you can use JNI to write Java native methods. From the JNI specification:
The JNI is a native programming interface. It allows Java code that runs inside a Java Virtual Machine (VM) to interoperate with applications and libraries written in other programming languages, such as C, C++, and assembly.
Bye Michael
Peter Olcott - 14 Aug 2006 05:58 GMT > Hi, > [quoted text clipped - 23 lines] > Bye > Michael This answer seems to indicate that it might be possible within the set of everything pertaining to Java to always obtain the exact location and state of any graphical user interface control.
Michael Rauscher - 14 Aug 2006 06:36 GMT Peter Olcott schrieb:
> This answer seems to indicate that it might be possible within the set of > everything pertaining to Java to always obtain the exact location and state of > any graphical user interface control. Yes. The only thing I'm in doubt is that it's possible just by using the standard runtime libraries.
Peter Olcott - 14 Aug 2006 06:47 GMT > Peter Olcott schrieb: >> [quoted text clipped - 4 lines] > Yes. The only thing I'm in doubt is that it's possible just by using the > standard runtime libraries. I need to have a completely definitive answer before this question has been sufficiently answered for my needs. For example another respondent answered with the opposite answer. This means that the criterion measure for an affirmative answer must be the details of the specific means to accomplish this. Hopefully someone will provide this, or alternatively most everyone else will confirm that it can't be done.
Stefan Schmiedl - 14 Aug 2006 07:08 GMT >> Peter Olcott schrieb: >>> [quoted text clipped - 11 lines] > accomplish this. Hopefully someone will provide this, or alternatively > most everyone else will confirm that it can't be done. There are too many variables in your statement of the problem to provide a "completely definitive" answer:
"might" be possible -- rubber word -> answer yes, probability low "within ... Java" -- a real constraint to "always" obtain -- my programs kill jvms upon startup -> answer no "exact location and "state" -- as in 'enabled' or 'disabled'? of "any ... control" -- invisible ones, too?
There *are* invisible GUI controls, you know. Screen corners have been used to dynamically (de)activate screen savers on Macintosh way back in System 6 days.
s.
Peter Olcott - 14 Aug 2006 15:09 GMT >>> Peter Olcott schrieb: >>>> [quoted text clipped - 14 lines] > There are too many variables in your statement of the problem to > provide a "completely definitive" answer: How about this one: Within the goal of determining the exact location and current state of any GUI control within every Java program, which cases of addressing this goal do not have specific solutions for GUI controls that have a visible location and visible state?
> "might" be possible -- rubber word -> answer yes, probability > low [quoted text clipped - 9 lines] > > s. Michael Rauscher - 14 Aug 2006 08:05 GMT Peter Olcott schrieb:
>> Peter Olcott schrieb: >>> This answer seems to indicate that it might be possible within the set of [quoted text clipped - 6 lines] > sufficiently answered for my needs. For example another respondent answered with > the opposite answer. This means that the criterion measure for an affirmative I said "yes" to "it might be possible". To me "within everything pertaining to Java" includes the Java language, the Java Platform and in particular the JNI, too.
So, if one can provide a DLL that is able to "always obtain the exact location and state of any graphical user interface control" and one can use the functions of this DLL by wrapping them with Java native methods, then it might be possible.
With regard to the "opposite answer": this is most probably the consequence of different interpretations of your question.
E.g. "within Java" is a very unclear statement to me. It could mean anything from the language to the platform, with JNI/without JNI...
Bye Michael
Peter Olcott - 14 Aug 2006 15:37 GMT > Peter Olcott schrieb: >>> Peter Olcott schrieb: [quoted text clipped - 12 lines] > Java" includes the Java language, the Java Platform and in particular the JNI, > too. A definitive affirmative answer requires specific methodology.
> So, if one can provide a DLL that is able to "always obtain the exact location > and state of any graphical user interface control" and one can use the [quoted text clipped - 6 lines] > E.g. "within Java" is a very unclear statement to me. It could mean anything > from the language to the platform, with JNI/without JNI... Anything that is in any way directly or indirectly related to the Java programming language.
How about we simplify this specification and merely say: Is there any possible way by any means generally available to the public to always obtain the current state and location of every graphical user interface control by one program pertaining to another program?
This question is not even restricted to Java, but, feel free to restrict your answer to Java if you want.
> Bye > Michael Michael Rauscher - 14 Aug 2006 16:31 GMT Peter Olcott schrieb:
> How about we simplify this specification and merely say: Is there any possible > way by any means generally available to the public to always obtain the current > state and location of every graphical user interface control by one program > pertaining to another program? OK, this makes life easier since I can give a short, definitive answer: I don't know.
Bye Michael
Peter Olcott - 14 Aug 2006 17:01 GMT > Peter Olcott schrieb: >> How about we simplify this specification and merely say: Is there any [quoted text clipped - 7 lines] > Bye > Michael To what extent do you know? Can you name one specific way that one program of any kind can obtain the current location and current state of the graphical user interface controls of another program that is a Java program?
Michael Rauscher - 14 Aug 2006 19:16 GMT Peter Olcott schrieb:
> To what extent do you know? To what I've written in previous posts: there's a way to use native functions from within Java applications.
> Can you name one specific way that one program of any kind can obtain the > current location and current state of the graphical user interface controls of > another program that is a Java program? I don't know. In fact, meanwhile I don't even know what you're trying to figure out (I assume that there aren't any side constraints):
- 100 % pure Java code can solve the problem: I'd say most probably no.
- there's a way for a Java application to use a solution: yes - most probably - if one can provide (native) code that solves the problem.
- there's a way to solve the problem in particular with respect to Java/Swing applications: I don't know but as you stated that your technology works with any application, you should know it.
Bye Michael
Peter Olcott - 14 Aug 2006 19:43 GMT > Peter Olcott schrieb: >> To what extent do you know? [quoted text clipped - 17 lines] > applications: I don't know but as you stated that your technology works with > any application, you should know it. My method processes screen pixels, it does not need to understand the internals of anything. I am trying to determine is the extent that competitors could use alternative methods to achieve or approximate the functional benefits of my technology.
> Bye > Michael Michael Rauscher - 15 Aug 2006 02:53 GMT Peter Olcott schrieb:
> My method processes screen pixels, it does not need to understand the internals > of anything. I am trying to determine is the extent that competitors could use > alternative methods to achieve or approximate the functional benefits of my > technology. I don't see any other way to achieve this than processing pixels in some way - at least for the general case.
BTW: pixels and screenshots can be obtained by java.awt.Robot.
If one is happy to work with MS Windows controls, I could imagine the use of the Windows function WindowFromPoint to obtain a handle to the window or the use of a system hook to monitor window messages.
But this is by far off topic and since I'm not really at home in this subject, I won't/can't deepen it.
Bye Michael
Peter Olcott - 15 Aug 2006 03:10 GMT > Peter Olcott schrieb: >> My method processes screen pixels, it does not need to understand the [quoted text clipped - 13 lines] > But this is by far off topic and since I'm not really at home in this subject, > I won't/can't deepen it. There was an in depth discussion of this on another newsgroup that I carefully studied. There were problems with this approach for the general case too. It seems that there are many cases the make this method untenable. Here is the link to that discussion:
http://groups.google.com/group/microsoft.public.vc.mfc/browse_thread/thread/32f6 ea916eb799d8/74db496855f60a0f?#74db496855f60a0f
Hopefully I now have a product with market potential after 30,000 hours nineteen years, and most of my life savings.
> Bye > Michael Jeffrey Schwab - 13 Aug 2006 17:05 GMT > Someone told me that Java always makes all of its graphical user interface > controls from scratch, and never implements its controls as Microsoft Windows > controls, is this always true, even for applets that run inside of Internet > Explorer? You get to pick whether to use native controls (AWT) or light-weight controls (Swing). Both of these libraries come with J2SE out of the box. You can alternatively download SWT, which uses a combination of the two techniques.
Is there a reason you need to know this, or are you just assuming there will be a significant performance penalty for drawing components "from scratch?"
Peter Olcott - 13 Aug 2006 17:12 GMT >> Someone told me that Java always makes all of its graphical user interface >> controls from scratch, and never implements its controls as Microsoft Windows [quoted text clipped - 7 lines] > Is there a reason you need to know this, or are you just assuming there will > be a significant performance penalty for drawing components "from scratch?" There is a reason that I need to know this. I don't assume anything. There would be no reason why drawing a component from scratch would be required to be inherently slower. How popular is Swing and SWT relative to AWT? Which of these are used for web applets?
Jeffrey Schwab - 13 Aug 2006 18:01 GMT >>> Someone told me that Java always makes all of its graphical user interface >>> controls from scratch, and never implements its controls as Microsoft Windows [quoted text clipped - 8 lines] > > There is a reason that I need to know this. Great, but could you be more specific?
> I don't assume anything. There would > be no reason why drawing a component from scratch would be required to be > inherently slower. How popular is Swing and SWT relative to AWT? Which of these > are used for web applets? Swing is probably the most popular. Applets can be either AWT or Swing.
You seem to have some confusion about what a GUI toolkit actually is. It's not a protocol that you use to interface one program to another; it's a way of interfacing with the user. If you're going to try to make your GUI look like somebody else's GUI, you should definitely choose Swing, which gives you the most control.
Peter Olcott - 13 Aug 2006 18:25 GMT >>>> Someone told me that Java always makes all of its graphical user interface >>>> controls from scratch, and never implements its controls as Microsoft [quoted text clipped - 23 lines] > somebody else's GUI, you should definitely choose Swing, which gives you the > most control. I have invented a way for one application to interface with any other application. I wanted to see how difficult it would be for competing products to duplicate the functional benefits of my technology. Thanks to Java Swing technology it looks like alternatives to my technology would be too difficult to implement, thus providing my technology with truly unique functional benefits.
Free MagazinesGet these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...
|
|
|