everyone!
I'm working on a sort of AutoComplete component and faced one problem. When you create a new instance of a component, fill it with data - everything seems to be ok. When user types a letter in the inputField (and filter accepts one or few records) - everything goes alright, BUT if the first time user types a wrong letter (filter returned 0 records) - I'm getting a null-pointer exception.
This component is based on ComboBox. I have some thoughts about that: I suppose that the dropdown is not being created at time, any ideas on how to force my autoComplete to create it? I know 1 way - copy/paste some incapsulated code from ComboBox class .. but it would be too many of it .. I'm looking for a better solution.
Or, maybe someone faced similar problem and has the other way to go?
Thanks in advance :)
I can selfishly suggest that you try the Flextras AutoComplete Component. We have a Spark version available for free and an MX version which is a commercial component with an more expansive API.
Let me assure you personally that extending the MX ComboBox from scratch is a nightmare; and there are plenty of "oddities" that crop up with the drop down in certain situations.
We've been on the market for about two years, have dozens of customers, and have spent hundreds of hours on this component. I'm willing to guarantee that our component will be more solid than anything you can create in a week, and cost a small fraction of your time.
Check out the manual, samples, and other documentation.
Related
Could someone please give some basic code on how to update items? I am using it an have an app that needs to add/delete values to list and map properties on table items without completely deleting the value. I also have a number property that I need to use as counter. In AWS documentation it simply states to re-save the entire object. I know it is possible to update items in this manner however I cannot seem to find any code. My app is in objective c however this seems like a problem for many people using many languages so this may be a great place to answer this for any and all languages. Thanks.
I am learning Qt5 using PyQt.
My goal is to create a UI with several goals (I will base my need on the screenshot below).
So here are my goals:
My need
Add directories to a list of directories to be scanned (I know how to use QFileDialog.getExistingDirectory for that). For this I'd like to have a "+" button.
When pressed the QFileDialog would open and a new row would be added.
Then I would scan the directory to look for files. It won't be my first implementation but I'd like to have a circular progress bar being displayed during the scan (at the place of the classic progress bar).
When the scan is done, the UI would display the number of files found during the scan. And the progress bar would be replaced by a tick mark icon (not shown on the screenshot...).
At the beginning of each row, I'd like to have a "-" button to delete the row.
My goal is to learn
This is important, I know I am not the first one to have the idea of such a UI.
So I not looking for a third party lib on top of Qt.
My goal is to learn Qt5 (with PyQt) with this example.
But if its unrealistic, please tell me!
My knowledge
Mode View: I implemented some basic model view widgets to display strings, and I understand how to extend the idea to tables or trees.
In this case the number of rows in the table would be handled automatically.
But is it possible to created a table that would display not only strings but also widgets?
Widget Mapper: I read that another methodology is the QDataWidgetMapper. In this case, I would have to deal with creation of news rows by myself, and then I would map data onto them.
But it seems to be a hard and long job.
So, is it a good idea?
So finally could someone tell what is the best direction for that?
I am not looking for code, but since it takes a lots of time to learn new concepts, I'd like to learn and use the correct one before starting coding.
Thank you for your help :)!
After so more searches, I found that I need to use the delegate methodology.
In Qt5 it's QStyledItemDelegate and in Qt4 it's QItemDelegate.
I could find a nice tutorial at the moment, but I started coded it.
I am struggling myself thinking about which component to use in my new app.
The first screen I am using Collection View with big images. Once the user touches one cell, it goes to the second screen ... and here is the problem.
I have three columns, similar to a dictionary with first language, second and third. The user will be able to choose which column he wants to search, and according to his criteria it will show the result that matches. I am not sure how to implement this, which component gives the best experience to the user. Any idea is more than welcome. Thank you in advance. Alex
If your data is several rows each with 3 columns, I would recommend customizing a UITableView. I followed this tutorial when I was trying to set up something similar.
The Table View will also give you efficiency if you have a lot of data, and you can build the custom table cells in the interface builder so that makes life a little easier.
-Ken
I am using Flex 4, ActionScript 3.
I want to disable auto-sort. Meaning I want the sort to be executed only when the user clicks the column header, not when new rows are added to the binded collection or when values are changed.
So far, I've found only this on the Internet:
http://tomek.me/disable-sort-on-datagrid-edit-update/
I'd like to avoid doing that if possible.
Many months ago, I found a solution that involved using event.preventDefault() placed somewhere. I thought I wouldn't have a problem finding it again, but I am.
Can someone please help? Thanks!
Bon :-D
Edit/Delete Message
I have face that problem many times before and get the same result as you get is NULL.
It in not possible at all and if possible please change in mx:internal otherwise there is no solution for that.
Have a nice day..
I want to use one data source (e.g. an Array) for multiple Datagrids that have different filterFunctions attached and show different columns.
First, I thought I use a very straight forward apporach:
create the Array
create an ArrayCollection for every DataGrid and set the "source" property to the Array
create the DataGrids and set their dataProvider property to its designated ArrayCollection
So now. every ArrayCollection can have its own filterFunction, sort state etc. but there needs to be only one Array with all the data in memory.
Now to the point that totally confused me:
As new items are added to the Array, of course no Events are dispatched and I have to call itemUpdated manually on each of the ArrayCollections. While debugging into the code in order to get a deeper understanding for Flex, I tried to figure out, what this misterious "itemUpdated" method does, especially as it notes in the adobe documentation, that, if no "property" is given (e.g. it is null), a simple "refresh()" will occur.
I did not find any calls to "refresh()" in the whole debugging (and I went down the framework whole as deep as possible (btw: lots of funny comments right in the code :-) )).
The only thing I could find was a CollectionChangeEvent getting dispatched with a PropertyChangeEvent in its "item" property. Which was of the kind "UPDATE" (and not, as I would expect "ADD"). When trying to dispatch that event manually, it never worked (e.g. the datagrid did not update).
I know I have to stick with itemUpdated for the moment, but as the dataprovider can get big (in both dimensions), performance does concern me and I wnat to understand what is going on under the hood.
And as expected, no help from adobe :-(
So a big thanks for everyone who read this whole text.
And an even bigger THANKS to anyone who answers and gives me the slightes hint in how I can get out of the confusion and understand (if thats possible at all) Fles a little better.
finest of all regards,
herbert
You have to call ArrayCollection.refresh() for each of your dataProviders to get the dataGrids to show the new changes to the source array.