use air native extension to show a simple native button? - actionscript-3

I'm mainly an AS3 coder and I know Java fair enough to be able to build my own ANE files for Vibration, Toast, dialogs and that simple stuff...
using air native extensions are cool but I'm getting a bit disappointed not being able to create a simple button with it.
I know creating a simple native button is a silly thing to do as it is very easy to create buttons in air directly but I'm using it as an example.
So the question is that is it possible to create .ane for calling native Button in android? at all?
it seems like I can't create any .ane files rather than abstract tools like push notifications or popup like windows like progress bars and dialog boxes.
is it right to say that a simple native button cannot be created with air native extensions?

for those who wondering why a simple button cannot be called with extensions, read http://adobe.com/devnet/air/articles/extending-air.html (scroll down to Limitations) where it says: Extensions cannot directly integrate interactive objects, such as native UI controls, with the display list. (Other items, such as native dialog boxes, may work, depending on the platform.)

Related

How to make use of Markups Core 'Callout' EditMode

I am attempting to replicate the BIM 360's Design Review Editor's callout tool (the most useful tool of them all) within my Forge app, but I can't seem to get the callouts edit mode from the Markups Core extension to work properly. When I change the editMode to 'callout', it seems to only create the text box at the end of the callout. So far, I've only been able to get this to work via a clumsy chain of eventListeners latched to the svg element that:
1. listen for the 'mouseup' event while drawing cloud,
2. switch editMode to arrow,
3. fire off a 'mousedown' event to begin new arrow,
4. listen for 'mouseup' event while drawing arrow,
5. switch editMode to callout,
6. switch editMode back to cloud when test has been entered.
Not only is it very clumsy, but it also ends up looking absolutely horrible!
Does anyone know how to activate this tool properly, or if it's meant to work exactly as it does?
It really is a shame that we have to reinvent the wheel on so many of these tool that are implemented in BIM360... and used to be part of the Markups extension, but are now gone.
I'm really not a graphical interface developer, and if I have to become one, it will be years before I finish this app and my company can make use of it.
You're using the callout tool from MarkupsCore properly. Unfortunately, the tool only generates the text box as you've observed. It does not generate the "cloud" rectangle and connecting line as in BIM360.

Can I embed my RCP's ViewPart in a Swing Application?

I have an RCP application with a hidden workbench window. I need to reuse the RCP's dialogs and views from a Swing application. The two processes communicate with each other via HTTP.
To display the RCP's SWT dialogs from the Swing Application, on Windows, I pass the window handle of the Swing application's main window to my RCP. It creates a Shell using Shell.win32_new() and uses that to parent the dialog.
Now, I have a ViewPart that I am hoping I can embed in the Swing application. I have tried embedding an SWT widget in my Swing application as described at https://www.eclipsezone.com//eclipse/forums/t60541.html and it works. The problem is in my case, first, its a ViewPart, and second, I need to achieve the embedding across processes. Is this even possible? Is there an approach similar to the window handles that I can employ?

Coded UI - Unable to identify a html controls on a Wpfbrowser

I am new to CodedUI & C#.
I am trying to automate a wpf application which has a WPF Browser.
So basically, It's WPF container with html content inside. I have created a similar sample small application and shared it here. This application opens the amazon.in website within wpfwindow.
WPF Browser application
My problem is Coded UI is not able to identify the Html-Controls/elements like 'Buttons', 'Text input fields' properly.
Below, the top image is from the WPF Browser app [Link which i have shared].
Here you can see a blue square box on the top-left. The coded UI identifies that area has the Search Go button.
Bottom part of the image is of the amazon website in IE browser where coded ui is properly highliting/ identifying the Search Go button.
Does this mean i cannot automate WPFBrowser apps using Coded UI.?
Can someone please tell what to do to identify the buttons properly in coded ui
You need to specify Id attributes for the controls that you want exposed to Coded UI.
To me this looks like CodedUI is getting some control that's similar, rather than the correct one.
You haven't mentioned if you're recording and executing tests or handwriting them in a separate CodedUI solution.
If you're recording them: Be sure that you're recording using your WPF application and interactions inside of them, rather than recording using your browser and then trying to execute tests using the WPF application
If you're writing them by hand: Be sure that you're correctly creating trees of inheritance when writing your tests. For instance, in a traditional CodedUI scenario the absolute top level object that all other controls inherit from is a web browser. In your scenario, that object should be the WPF object. There are probably going to be some other windows or various controls that are children of the WPF application which in turn will finally have the browser as a child.

using PopUpManager in a Flex 4.5 Mobile App

This is more of a best practices question rater than something technical.
I'm working on a mobile app using the Flex 4.5 SDK and I'm trying to figure out the best way to handle notification windows. In most cases these windows will be alerting the user to when something goes wrong. Ex: bad login, no data, cannot resolve server.
I'm using a singleton design pattern, I have a Requests class that handles server calls. Most popups will be originating from this class (IOErrorEvents from my loader being used to access the API). Since this class is a singleton and is used from all Views inside the app it is not aware of applications current view. I'm also not sure having this class keep track of the current view and having it push popups on top of it would be best practice.
I'm hoping that I can use PopUpManager to keep track of where to add popups and what popups are currently on the stage. Though all examples I've seen online about this show static Components being used in a views Declarations tag.
I'm really just looking for any examples or input on how you would solve this problem. Any help would be greatly appreciated!
I had the same problem, and sorted it by making an Alert popup component that you can call from anywhere in the code base, and it will pop up in the currently active window. It also has an always visible scrollbar text area which is handy
http://bbishop.org/blog/?p=502
It works for a view navigator application, but if your using a tabbed navigator application, you can add a call for that, or simply change the code to
mainTabbedNavigator = FlexGlobals.topLevelApplication.tabbedNavigator;
currentTab = mainTabbedNavigator.selectedNavigator as ViewNavigator;

How to Clear history in Adobe Air's HTML control

I am using Adobe AIR's html control in my desktop application to let users see web pages. I am using the html.historyBack() and html.historyNext() methods to allow moving back and forth. But I want to clear the history once a specific option is selected, say a click on a button, without restarting the application. I tested both versions of AIR, 1.5.2 and AIR 2.0 Beta but unable to find any way to do so.
Is there any way to fix this problem?
Looking forward to hear from you,
Alex Fisherr
I don't think you can direct modify the history object because it's read-only. The easiest way to clear your history is to create a new HtmlLoader and replace the existing HtmlLoader.
This new HtmlLoader will have no history as desired.
If all you want to do is set the enabled state of the back and forward buttons then have a start point int, which you can reset when needed. Then base the history.length on this.