Flash 2.0 Datagrid component bug ?

Recently I found a bug in Datagrid component. The swf file
which contain datagrid act differely in IE 6, and IE 7.
This is what I've done:
1) Compile swf, export it together with html file.
2) Run the html file
3)Press on one of the cell,drag it and then release it
outside of the browser/flash canvas.
4)Move the mouse pointer back to flash canvas
5)The grid will scroll automatically( move the move up and
down to test)
6)After a few times mouse pointer movement, suddenly IE
crash, CPU usage 100%
I have tested the swf file on firefox 2.007 and stand alone
flash player, however, none of the flash player have this bug.
Therefore I suspect that the ActiveX flash plugin for IE cause this
bug.
This is the source code, which I use to create the datagrid
for testing.
ps: open one fla file, drag datagrid component from component
panel to the stage or it will not run.
import mx.controls.DataGrid;
var header = "Stock Code/\nName,Type,Status,Order
Date\nTime,Duration,OrderQty/\nPrice,Matched Qty/\nPrice,Trd
Curr/\nMatched Value,Account No/\nOrder No";
var wid =
"90,43.2699356842522,91.5969497381748,87.4747020181826,60.4473499934867,67.9851014914014, 90.2231829093762,111.8984058876167,134.104372277509";
var alig = "left ,left, left , left , left , right , right ,
right , left ";
var halig = "center ,center,center , center , center , center
, center , center , center ";
var fxdata:Array = new Array();
fxdata[0]= new Array("67676
GPACKET","Buy","Expired","05/09/2007 06:04:20 PM","Day","200
4.34","0 0.00","MYR 0.00","423423423432");
fxdata[1]= new Array("054066
FASTRAK","Buy","Expired","05/09/2007 01:45:18 PM","Day","47,900
0.27","0 0.00","MYR 0.00","fdsfsdfsdf");
fxdata[2]= new Array("737013
HUBLINE","Sell","Expired","05/09/2007 11:53:19 AM","Day","400
0.69","0 0.00","MYR 0.00","93743");
fxdata[3]= new Array("31474
L&G","Buy","Expired","03/09/2007 11:35:35 AM","Day","500
0.70","0 0.00","MYR 0.00","389dskjfsd");
fxdata[4]= new Array("38182
GENTING","Buy","Expired","28/08/2007 11:38:59 AM","Day","500
7.35","0 0.00","MYR 0.00","90sklsdakl");
fxdata[5]= new Array("05005
PALETTE","Buy","Expired","28/08/2007 11:08:23 AM","Day","500
0.115","0 0.00","MYR 0.00","jsdaflk;as");
fxdata[6]= new Array("093082
GPACKET","Buy","Expired","27/08/2007 03:49:43 PM","Day","300
3.82","0 0.00","MYR 0.00","jsdafj;sda");
fxdata[7]= new Array("644769
KELADI","Buy","Expired","27/08/2007 11:05:36 AM","Day","10,000
0.30","0 0.00","MYR 0.00","jsadjf;lkdas");
fxdata[8]= new Array("676653
KASSETS","Buy","Expired","24/08/2007 06:15:33 PM","Day","500
2.93","0 0.00","MYR 0.00","jlsdf;adas");
fxdata[9]= new Array("473323
JAKS","Buy","Expired","23/08/2007 04:45:03 PM","Day","100 0.915","0
0.00","MYR 0.00","jjkljsdlfasd");
fxdata[10]= new Array("03069
IPOWER","Buy","Expired","22/08/2007 10:18:01 AM","Day","9,800
0.365","0 0.00","MYR 0.00","jlajsd;lfjads");
fxdata[11]= new Array("05025
LNGRES","Buy","Expired","21/08/2007 03:08:06 PM","Day","9,900
0.28","0 0.00","MYR 0.00","jlkjsdafl");
fxdata[12]= new Array("01308 N2N","Buy","Expired","21/08/2007
10:34:51 AM","Day","200 1.71","0 0.00","MYR 0.00","mjkjadsflasd");
fxdata[13]= new Array("70069
IPOWER","Buy","Cancelled","21/08/2007 10:02:08 AM","Day","0
0.37","0 0.00","MYR 0.00","jkjasd;fsda");
fxdata[14]= new Array("03069
IPOWER","Buy","Cancelled","20/08/2007 07:20:54 PM","Day","0
0.38","0 0.00","MYR 0.00","jkjsdlkfjsdaf");
fxdata[15]= new Array("12651
MRCB","Buy","Replaced","20/08/2007 05:31:59 PM","Day","900 2.35","0
0.00","MYR 0.00","upuewoirwe");
var mdtgrid:DataGrid;
_root.createEmptyMovieClip("displayobj1",
_root.getNextHighestDepth(),{_x:0,_y:0});
initial();
function initial(){
_root.mdtgrid =
_root.createClassObject(mx.controls.DataGrid, "xxx",
_root.getNextHighestDepth());
_root.mdtgrid.doLater(_root,"setData");
function setData(){ //insert data to datagrid
var temp:Array = new Array();
for (var i in _root.fxdata){
temp
= new Object();
for (var j in _root.fxdata){
temp
[j] = _root.fxdata[j];
_root.mdtgrid.dataProvider =temp;
_root.mdtgrid.doLater(_root,"setdgStyle");
function setdgStyle(){
var rowhight = 40;
var noofrow = 8;
var headerheight = 35;
var gridheight = (rowhight * noofrow) + headerheight ;
_root.mdtgrid.setSize(800, gridheight);
_root.mdtgrid.rowHeight =rowhight;
_root.setHeader(_root.header.split(","));
_root.setWidth(_root.wid.split(","));
_root.setAlign(_root.alig.split(","));
_root.mdtgrid.invalidate();
function setHeader(datasource:Array){ //set header label
var leng:Number = _root.mdtgrid.columnCount;
var sleng:Number = datasource.length;
var temp:Object;
for (i =0 ;i<leng;i++){
if (i>=sleng){
break;
_root.mdtgrid.getColumnAt(i).headerText = datasource
function setWidth(datasource:Array){ //set columns width
var leng:Number = _root.mdtgrid.columnCount;
var sleng:Number = datasource.length;
var temp:Object;
for (i =0 ;i<leng;i++){
if (i>=sleng){
break;
_root.mdtgrid.getColumnAt(i).width = Number(datasource);
function setAlign(datasource:Array){ //set Alignment
var leng:Number = _root.mdtgrid.columnCount;
var sleng:Number = datasource.length;
var temp:Object;
for (i =0 ;i<leng;i++){
if (i>=sleng){
break;
temp = _root.mdtgrid.getColumnAt(i);
temp.setStyle("textAlign",trim(datasource

Anyone know how to fix it ?

Similar Messages

  • Customizing DataGrid component in Flash CS3 using AS3

    Can anyone please explain how to customize the DataGrid
    component in Flash CS3 using AS3???
    How do you remove/change the grid lines for the rows and
    colums?
    How do you remove/change the border?
    My day has been lost searching for this answer. Flash
    Documentation is worthless and Google finds nothing with regards to
    AS3. ASDGRH.
    Thanks in advance,
    TedWeb

    I hope you've found a resolution to this by now, but I just noticed the discussion title when posting a captioning issue.
    In a nutshell, create a listener on your FLVPlayback module with a VideoEvent.SKIN_LOADED event. You'll also need to set the showCaptions in your FLVPlaybackCaptioning object to true. Apparently, if the captions are set to false when the player object loads the skin, the captions aren't recognized and your captions toggle will require an extra click to activate the captions.
    Here's the link to another discussion on the same topic with all of the details:
    http://kb2.adobe.com/cps/402/kb402452.html
    Also, have you had any issues with the caption button in the FLVPlayback skin not showing up? That's my current issue. Here's the discussion for it:
    http://forums.adobe.com/thread/796423?tstart=0

  • NEWBIE: AS3/XML DataGrid Component interaction

    So heres the situation:
    I'm trying to create a simple newsreader using a Flash
    DataGrid component in which data is loaded via EXTERNAL XML
    attributes. And it works fine...got 2 columns, "subject" and "date
    posted", and the appropriate data being sent to the right place.
    So heres the problem:
    I'd like to link those rows, when the user clicks on any
    individual row, to load the "URL" attribute that the XML has
    defined. Feels like there's an easy solution but i just can't put
    my finger on it:
    Is this possible? Code below:
    < LexHead />

    Whay are you using a different formatted xml for the dummy
    than the real data. Using internal data for testing is a fine
    technique, but i needs to be the same format as the real data.
    Otherwise how will you know when you get the code right?
    I have an example that uses HTTPService to get an xml file
    from the server, uses a tree to display/edit the nodes, a dynamic
    dataGrid for displaying/editing the attributes, and HTTPService to
    send it back to the server. The backend is JSP, so to run that
    you'd need a J2EE web server like Tomcat, but the tree and property
    explorer might be useful.
    Semd me an email and I will send it to you directly.
    Tracy

  • Could not create the flash button because a component of Dreamweaver is missing. Please reinstall Dreamweaver.

    I have Dreamweaver MX 2004 and then upgraded to
    Dreamweaver Studio MX 2004 and decided to upgrade to Studio 8. At
    the time I got the Studio 8 I also upgraded my computer and now my
    purchased flash buttons do not work on my system. I get an error
    message Macromedia Dreamweaver Could not create the flash button
    because a component of Dreamweaver is missing. Please reinstall
    Dreamweaver. We tried uninstall and then reinstall and still no
    fix. My husband tried the software on his lap top and they work
    fine. I did have Contribute installed but uninstalled it . 1. What
    would the missing component be? and 2. Why didn't the reinstall
    work? Thanks for the help. I need to update a couple of sites that
    use the buttons and can't so far. Carol

    you probably have to install the Dreamweaver update so that
    you're on
    version 8.0.2. just search Adobe.com for Dreamweaver update
    and you
    should be able to find it pretty quickly.
    cpt_vom wrote:
    > After a reinstall of Window XP and Drewamweaver ver.8
    I'm running into a
    > problem.
    > When inserting a flash button I get the following
    message:
    > :Could not create the Flash Button because a Component
    of Dreamweaver is
    > missing. Please reinstall Dreamweaver:
    > Not a word about which Componement missing!
    > I have tried to instal Dreamweaver several times but
    without result - same
    > message appears.
    > The button in question is 'FZ Pack 3: Multi Buttons'.
    > I can insert the standard buttons with no problems and I
    have also tried to
    > insert this button on my second PC with succes which
    could indicate a problem
    > with my main PC, maybe something to do to Windows XP?
    > I really would appreciate an solution to this problem
    and hope somebody could
    > help.
    >
    > Kind regards,
    > Kjeld - Copenhagen - Denmark
    >
    >

  • Passing Arrays to the DataGrid Component

    How's it going my peoples? I'm having some difficulties
    passing Arrays into a DataGrid Component. It just doesnt seem to
    work for me. Anyone have any ideas on the best way of doing this?
    Thank you in advance.

    We have Our site build using odp.net but suddenly it stoped working on the production server. MS Provider is working fine in that case. so we want to have one copy of solution with MS provider as backup copy so in future if any failure occurs to odp.net we can use this copy. So for that I need to know how to pass arrays to oracle using MS Provider.
    Regards,
    Suresh

  • Flash CS4 Text Layout Component Problem

    Hi,
    We are trying to use multiple instances (around 25) of Flash
    CS4 Text Layout Component in one file to display arabic text. It
    works fine for some random number of instances. However, it gives
    problem if that number increases (The text doesnt show).
    Any help will be highly appreciated.
    Thanks!

    If you're referring to this:
    http://labs.adobe.com/technologies/textlayout/
    Then that's still in beta and you should take your discussion
    to the beta forum on that link.

  • No DataGrid component?

    I believe JavaFX seriously needs a DataGrid component to render tabular data as a GRID, where data can be paged, sorted, filtered like other data grid solutions (Adobe Flex, jQGrid, DataTables etc).
    This is one of the basic controls, any serious application would definitely need. TableView is the only closest thing I found, but that doesn't fit the bill at all.
    The DataFx project looks promising, but is very primitive.
    I hope Oracle will come up with a pretty GRID control soon, to beat the competition. We were planning to go with JavaFX and the only thing that is stopping us is the lack of a GRID component, we have to look for other web-based alternatives now.

    I think there's more to the TableView API than you're seeing, as it's supported by the JavaFX Properties and Collections APIs. The columns are exposed as a mutable, observable List, as is the data. So the columns are dynamic and can be readily changed as necessary, the table will update automatically.
    I used you example as a way to test this out; I've made no effort whatsoever to make this look good, the css is relatively straightforward. Also, I have no knowledge whatsoever of your business domain, so this will likely look somewhat naive. I think the code structure might be helpful though. There are some things I wish were a bit different but I'll come to that after the code.
    I'm going to assume you have some kind of data model and some way of knowing when the data's changed. I've mocked this up with a DataModel class with listener notification, but there are other ways this could happen (could be an EJB, for example). I've made this completely agnostic with respect to JavaFX.
    DataModel.java (a mockup of something I assume you already have existing):
    import java.util.ArrayList;
    import java.util.List;
    public class DataModel {
         private double minDeviation ;
         private double maxDeviation ;
         private int numDeviationCategories ;
         private int numRows ;
         private List<DataListener> listeners ;
         public DataModel(double minDeviation, double maxDeviation,
                   int numDeviationCategories, int numRows) {
              this.minDeviation = minDeviation;
              this.maxDeviation = maxDeviation;
              this.numDeviationCategories = numDeviationCategories;
              this.numRows = numRows;
              this.listeners = new ArrayList<DataListener>();
         public String getValue(int row, double deviation) {
              int category = (int) ((numDeviationCategories - 1)*(deviation - minDeviation) / (maxDeviation - minDeviation)) ;
              return String.format("f(%d, %d)", category+1, row+1);
         public double getMinDeviation() {
              return minDeviation;
         public void setMinDeviation(double minDeviation) {
              if (minDeviation != this.minDeviation) {
                   this.minDeviation = minDeviation;
                   fireDeviationRangeChanged();
         public double getMaxDeviation() {
              return maxDeviation;
         public void setMaxDeviation(double maxDeviation) {
              if (maxDeviation != this.maxDeviation) {
                   this.maxDeviation = maxDeviation;
                   fireDeviationRangeChanged();
         public int getNumDeviationCategories() {
              return numDeviationCategories;
         public void setNumDeviationCategories(int numDeviationCategories) {
              if (numDeviationCategories != this.numDeviationCategories) {
                   this.numDeviationCategories = numDeviationCategories;
                   fireNumDeviationCategoriesChanged();
         public int getNumRows() {
              return numRows;
         public void setNumRows(int numRows) {
              if (this.numRows != numRows) {
                   this.numRows = numRows;
                   fireNumRowsChanged();
         public void addDataListener(DataListener l) {
              listeners.add(l);
         public void removeDataListener(DataListener l) {
              listeners.remove(l);
         private void fireDeviationRangeChanged() {
              DataEvent event = new DataEvent(this);
              for (DataListener l : listeners) {
                   l.deviationRangeChanged(event);
         private void fireNumDeviationCategoriesChanged() {
              DataEvent event = new DataEvent(this);
              for (DataListener l : listeners) {
                   l.numDeviationCategoriesChanged(event);
         private void fireNumRowsChanged() {
              DataEvent event = new DataEvent(this);
              for (DataListener l : listeners) {
                   l.numRowsChanged(event);
    }And there are two almost trivial supporting classes to support the listener notification:
    public interface DataListener {
         public void deviationRangeChanged(DataEvent event);
         public void numDeviationCategoriesChanged(DataEvent event);
         public void numRowsChanged(DataEvent event);
    public class DataEvent {
         private final DataModel source ;
         public DataEvent(DataModel source) {
              this.source = source;
         public DataModel getSource() {
              return source;
    }The TableView exposes ObservableLists for the columns and the data. We need to update those lists when the data or column structure changes. So we need an adapter to sit in front of our generic DataModel and manipulate those lists when the data changes. This class will take a reference to a DataModel in addition to references to the column list and data list; it will listen for notifications from the DataModel and update the lists as necessary. (I'm implementing each row in the table simply as a List<String>, and we retrieve each element from the row using a custom CellValueFactory.)
    TableDataModel.java:
    public class TableDataModel {
         private DataModel model ;
         private final ObservableList<TableColumn<List<String>, ?>> columns ;
         private final ObservableList<List<String>> items ;
         public TableDataModel(DataModel model, ObservableList<TableColumn<List<String>, ?>> columns, ObservableList<List<String>> items) {
              this.model = model ;
              this.columns = columns;
              this.items = items ;
              buildColumns();
              buildItems();
              model.addDataListener(new ModelListener());
         private void buildColumns() {
              int numCols = model.getNumDeviationCategories();
              List<TableColumn<List<String>, String>> colList = new ArrayList<TableColumn<List<String>, String>>();
              double minDeviation = model.getMinDeviation() ;
              double maxDeviation = model.getMaxDeviation() ;
              double colDeviationIncrement = (maxDeviation - minDeviation) / (numCols-1) ;
              Format percentFormat = DecimalFormat.getPercentInstance();
              for (int col=0; col<numCols; col++) {
                   String colTitle = percentFormat.format(minDeviation + col*colDeviationIncrement);
                   TableColumn<List<String>, String> column = new TableColumn<List<String>, String>(colTitle);
                   final int colIndex = col ;
                   column.setCellValueFactory(new Callback<TableColumn.CellDataFeatures<List<String>,String>,ObservableValue<String>>() {
                        @Override
                        public ObservableValue<String> call(
                                  CellDataFeatures<List<String>, String> cellDataFeatures) {
                             List<String> data = cellDataFeatures.getValue();
                             return new SimpleStringProperty(data.get(colIndex));
                   colList.add(column);
              columns.clear();
              columns.addAll(colList);
         private void buildItems() {
              List<List<String>> itemList = new ArrayList<List<String>>();
              int numCols = model.getNumDeviationCategories() ;
              for (int row = 0; row<model.getNumRows(); row++) {
                   List<String> data = new ArrayList<String>();
                   double minDeviation = model.getMinDeviation() ;
                   double colDeviationIncrement = (model.getMaxDeviation() - minDeviation) / (numCols-1) ;
                   for (int col = 0 ; col < numCols; col++) {
                        double deviation = minDeviation + col * colDeviationIncrement ;
                        data.add(model.getValue(row, deviation));
                   itemList.add(data);
              items.clear();
              items.addAll(itemList);
         private class ModelListener implements DataListener {
              @Override
              public void deviationRangeChanged(DataEvent event) {
                   double minDeviation = model.getMinDeviation();
                   double maxDeviation = model.getMaxDeviation();
                   int numCols = model.getNumDeviationCategories();
                   double colDeviationIncrement = (maxDeviation - minDeviation) / (numCols-1);
                   Format percentFormat = DecimalFormat.getPercentInstance();
                   for (int col=0; col<numCols; col++) {
                        String colTitle = percentFormat.format(minDeviation + col*colDeviationIncrement);
                        columns.get(col).setText(colTitle);
              @Override
              public void numDeviationCategoriesChanged(DataEvent event) {
                   buildItems();
                   buildColumns();
              @Override
              public void numRowsChanged(DataEvent event) {
                   buildItems();
    }To test this out, I have a simple UI for changing the range of "deviations" displayed, the number of columns, and the number of rows. The controller for the UI simply instantiates a DataModel and passes calls to it when the user changes these values. In real life, of course, the changes to the data model could come from anywhere - likely from polling a server or server push. The UI also contains the TableView, retrieves the columns and items from it, and passes those, along with the data model to a TableDataModel which ties it all together. This isn't really part of the infrastructure, but for completeness here's the controller:
    Controller.java
    public class Controller {
         @FXML private TableView<List<String>> tableView ;
         @FXML private TextField minDevTF ;
         @FXML private TextField maxDevTF ;
         @FXML private TextField numColsTF ;
         @FXML private TextField numRowsTF ;
         @FXML private Button minDevIncButton ;
         @FXML private Button minDevDecButton ;
         @FXML private Button maxDevIncButton ;
         @FXML private Button maxDevDecButton ;
         @FXML private Button numColsIncButton ;
         @FXML private Button numColsDecButton ;
         @FXML private Button numRowsIncButton ;
         @FXML private Button numRowsDecButton ;
         private DataModel model ;
         public void initialize() {
              model = new DataModel(0.8, 1.2, 5, 6);
              final TableDataModel tableModel = new TableDataModel(model, tableView.getColumns(), tableView.getItems());
              model.addDataListener(new DataListener() {
                   @Override
                   public void deviationRangeChanged(DataEvent event) {
                        if (model.getMaxDeviation() - model.getMinDeviation() <= 0.01) {
                             minDevIncButton.setDisable(true);
                             maxDevDecButton.setDisable(true);
                        } else {
                             minDevIncButton.setDisable(false);
                             maxDevDecButton.setDisable(false);
                        Format percentFormat = DecimalFormat.getPercentInstance();
                        minDevTF.setText(percentFormat.format(model.getMinDeviation()));
                        maxDevTF.setText(percentFormat.format(model.getMaxDeviation()));
                   @Override
                   public void numDeviationCategoriesChanged(DataEvent event) {
                        numColsDecButton.setDisable(model.getNumDeviationCategories() <= 2);
                        numColsTF.setText(Integer.toString(model.getNumDeviationCategories()));
                   @Override
                   public void numRowsChanged(DataEvent event) {
                        numRowsDecButton.setDisable(model.getNumRows() <= 2);
                        numRowsTF.setText(Integer.toString(model.getNumRows()));
              Format percentFormat = DecimalFormat.getPercentInstance();
              minDevTF.setText(percentFormat.format(model.getMinDeviation()));
              maxDevTF.setText(percentFormat.format(model.getMaxDeviation()));
              numColsTF.setText(Integer.toString(model.getNumDeviationCategories()));
              numRowsTF.setText(Integer.toString(model.getNumRows()));
         public void decrementMinDeviation() {
              model.setMinDeviation(model.getMinDeviation() - 0.01);
         public void incrementMinDeviation() {
              model.setMinDeviation(model.getMinDeviation() + 0.01);
         public void decrementMaxDeviation() {
              model.setMaxDeviation(model.getMaxDeviation() - 0.01);
         public void incrementMaxDeviation() {
              model.setMaxDeviation(model.getMaxDeviation() + 0.01);
         public void decrementNumColumns() {
              model.setNumDeviationCategories(model.getNumDeviationCategories() - 1);
         public void incrementNumColumns() {
              model.setNumDeviationCategories(model.getNumDeviationCategories() + 1);
         public void decrementNumRows() {
              model.setNumRows(model.getNumRows() - 1);
         public void incrementNumRows() {
              model.setNumRows(model.getNumRows() + 1);
    }Here's the FXML for the UI:
    root.fxml:
    <?xml version="1.0" encoding="UTF-8"?>
    <?import javafx.scene.layout.BorderPane?>
    <?import javafx.scene.control.ScrollPane?>
    <?import javafx.scene.layout.HBox?>
    <?import javafx.scene.layout.VBox?>
    <?import javafx.scene.layout.FlowPane?>
    <?import javafx.scene.control.TextField?>
    <?import javafx.scene.control.Button?>
    <?import javafx.scene.control.Label?>
    <?import javafx.scene.control.TableView?>
    <?import javafx.scene.shape.Path?>
    <?import javafx.scene.shape.MoveTo?>
    <?import javafx.scene.shape.LineTo?>
    <?import javafx.scene.shape.ClosePath?>
    <?import javafx.scene.paint.Color?>
    <?import javafx.scene.control.ProgressIndicator?>
    <BorderPane xmlns:fx="http://javafx.com/fxml"
         fx:controller="edu.marshall.denvir.tests.gridlike.Controller">
         <top>
              <FlowPane>
                   <HBox>
                        <Label text="Min Deviation:"/>
                        <TextField fx:id="minDevTF" editable="false" />
                        <VBox>
                             <Button fx:id="minDevIncButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10" onAction="#incrementMinDeviation">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>                              
                             </Button>
                             <Button fx:id="minDevDecButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10" onAction="#decrementMinDeviation">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>                              
                             </Button>
                        </VBox>
                   </HBox>
                   <HBox>
                        <Label text="Max Deviation:" />
                        <TextField fx:id="maxDevTF" editable="false" />
                        <VBox>
                             <Button fx:id="maxDevIncButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10"  onAction="#incrementMaxDeviation" styleClass="increment-button">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>
                             </Button>
                             <Button fx:id="maxDevDecButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10"  onAction="#decrementMaxDeviation">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>
                             </Button>
                        </VBox>
                   </HBox>
                   <HBox>
                        <Label text="Number of columns:" />
                        <TextField fx:id="numColsTF" editable="false" />
                        <VBox>
                             <Button fx:id="numColsIncButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10" onAction="#incrementNumColumns">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>
                             </Button>
                             <Button fx:id="numColsDecButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10" onAction="#decrementNumColumns">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>
                             </Button>
                        </VBox>
                   </HBox>
                   <HBox>
                        <Label text="Number of Rows:" />
                        <TextField fx:id="numRowsTF" editable="false" />
                        <VBox>
                             <Button fx:id="numRowsIncButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10"  onAction="#incrementNumRows">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>
                             </Button>
                             <Button fx:id="numRowsDecButton" prefWidth="20" prefHeight="10" minWidth="20" minHeight="10" onAction="#decrementNumRows">
                                  <graphic>
                                  <Path fill="BLACK">
                                       <elements>
                                            <MoveTo x="0" y="4"/>
                                            <LineTo x="2" y="0"/>
                                            <LineTo x="4" y="4"/>
                                            <ClosePath/>
                                       </elements>
                                  </Path>
                                  </graphic>
                             </Button>
                        </VBox>
                   </HBox>
              </FlowPane>
         </top>
         <center>
                   <TableView fx:id="tableView"/>
         </center>
    </BorderPane>and finally the test driver:
    Gridlike.java:
    public class Gridlike extends Application {
         @Override
         public void start(Stage primaryStage) throws Exception {
              Parent root = FXMLLoader.load(getClass().getResource("root.fxml"));
              Scene scene = new Scene(root, 600, 400);
              primaryStage.setScene(scene);
              primaryStage.sizeToScene();
              primaryStage.show();
         public static void main(String[] args) {
              launch(args);
    }So that seems to me not to be too bad. Obviously in the real world there's likely to be way more functionality in the data model and table data model implementations, but the structure is pretty clean and it should integrate pretty nicely with existing structures without much effort.
    One thing I don't like is having to pass the ObservableLists to the TableDataModel. I'd prefer the TableDataModel simply to instantiate it's own lists and expose them, the way it is seems like too much strong couple from the model to the view. The problem is that the TableView only exposes ObservableLists. If it exposed ListPropertys, then those properties could just be bound to arbitrary list properties (or observable lists) exposed by a TableDataModel, which I think would be a bit cleaner.
    In terms of having APIs for binding directly from TableViews to JDBC code, or similar, I think that would be nice but is probably a bit unrealistic at this stage. What happened in the web app world was that this kind of functionality was implemented by third party frameworks, and only after the use cases had really settled down did Sun/Oracle provide standard implementations (JPA and JSF, depending on what you're looking for). I don't think we'll have to wait as long as we waited for those, but I'd guess it will be a while.
    The row headers, however, would be pretty nice, and it seems those could be fairly easily added to the TableView API. It shouldn't be too hard to create a column for them and style it so it looks different, but it would mess with the cleanliness of the data model.
    Just my $0.02 worth...

  • Can any one have link where datagrid component

    can any one have link where datagrid component, ACTUALLY I
    WANT HERE that i have rendered checkbox component in datagrid &
    delete multiple rows of datagrid help?

    Hi Sairam, what do you want to do?
    1) You can to change language vendor in transaction xk02 with the vendor number and on Address screen you go to Communication tab and change the language there.
    2) You can put the currency of vendor on Purchasing data screen in the same transaction
    I wish that this information help you
    Rose

  • Custom Sort (by date) in a DataGrid component

    So I've got a data grid component hooked up to a data provider like so:
    var weekData:XML=// some xml loaded in earlier....
    var weekGrid:DataGrid=new DataGrid();
    var dataProvider:DataProvider=new DataProvider();
    for each(var entry:XML in weekData){
         dp.addItem({event:entry.title,date:FormatDate.format(new Date(entry.@startDate),5),data:entry.@startDate});
    The title column is just what you might think. The date colum is actually a format like May 2012 or Feb 2013. And the data "column" isn't actually shown in the dataGrid it is the "key" for sorting by date. It contains the getTime() value of the date like 1328515200000. So that will make date sorting just a case of Array.NUMERIC with the appropriate Array.DESCENDING when needed.
    I've found that if I do this:
    weekGrid.dataProvider.sortOn("data",Array.NUMERIC)
    weekGrid.invalidate();
    it works and the grid is sorted -- IF I have some other button to click to cause that code to run.
    I want to tie it together with the click event on the grid header. Thusly:
    weekGrid.addEventListener(DataGridEvent.HEADER_RELEASE,sortDataGrid);
    And I've getting the event and all, but evidently that is fireing off the built-in sorting which happens after mine. And it doesn't do what I want.
    Any idea how to stop that and allow my perferred sorting to take place?

    if you don't want the user to sort your datagrid, use:
    weekGrid.sortableColumns = false;
    and execute your sort without clicking anything.  or use:
    weekGrid.addEventListener(DataGridEvent.HEADER_RELEASE,sortDataGrid);
    function sortDataGrid(e:DataGridEvent):void{
        setTimeout(sortF,100);
    function sortF():void{
        weekGrid.dataProvider.sortOn("data",Array.NUMERIC)

  • Flash builder 4 html component

    Hi,
    I have a html loader ( <mx:HTML... ) on my air app developed with flash builder 4 and I have a problem.The links that have the target="_blank" attribute can't be opened (when I ckicl a such link nothing happens). I want them to be opened in a new browser window (or in a new air window).
    Links that not have the target="_blank" attribute works well and are opened in the same html loader component.
    Is there any way to make the links with  target="_blank" attribute works ?

    Try using StageWebView: http://www.adobe.com/devnet/air/quick_start_as/quickstarts/qs_using_stage_web_view.html

  • Tree component bug (?) and some questions

    Hi! I have some problems and questions about tree component.
    Problems:
    1. I have an expanded tree with ~300 items. Each item label
    displayed in 2-3 strings. After QUICK tree scrolling using mouse
    wheel (I make 3-5 scrolls) for most of items displayed only last
    string and one empty string :(
    Bug of tree renderer? Is it fixable?
    Questions:
    1. Can I have font color X for tree item 1 and font color Y
    for tree item 2?
    2. I have a tree with ~300 items. Expand/Collapse tree
    operations takes 5 to 10 seconds on Core2Duo. Is it possible to
    speed up this operations?
    Code:

    Hello.
    About problem 1.
    I faced this problem several times, cann't understand the
    problem. May be it's a bug.
    Questions.
    1. Of course you can. Write itemRenderer for this.
    2. Tree has effects for expanding and collapse events, you
    can reduce times for them.

  • Flash 8: Making a component.

    It's really odd. When I test my scene (press ctrl+enter) and
    then go back to the "component inspector" the second I change a
    field and press "backspace" to delete a number in a textfield, it
    RESETS!! It's driving me crazy. Is this a bug in Flash8 or a bug in
    my code?

    Well, it wasn't simple to do because I had som many
    variables. But it was a simple solution. Sorry for not leaving a
    longer reply, but it was very late in the evening when I figured it
    out.
    1.) My code was just sloppy. I didn't use get/set on any of
    the variables I declared in my Class. Like this:
    //The better way...
    [Inspectable (type="Number" , defaultValue="myParticle" )]
    public function set $particleName($particleName:String){
    particleName = $particleName;
    }//end set
    public function get $particleName(){
    return particleName;
    }//end get
    //the way I had it...
    [Inspectable (type="Number" , defaultValue="myParticle" )]
    var public particleName:String;
    2.) The sliders I made were reseting but the textfields were
    ok with my code like this in the Component_UI:
    //textfiled something like this
    this.onLoad = function(){
    ParticleID.text = xch.$particleName;
    }//end onLoad
    //slider I made something like this
    RateSlider.onMouseUp = function(){
    sx = this.sliderButton._x;
    Rate.text = sx;
    xch.$genRate = sx;
    }//end function
    The problem was, when I reselected the component on the
    stage, it would reset. Actually just about anything I did would
    reset the darn things. So I decided to see if setting thier current
    position to value of the xch.$variable onLoad would do the job.
    Like this:
    this.onLoad = function(){
    Rate.text = xch.$genRate;
    RateSlider.sliderButton._x = xch.$genRate;
    }//end onLoad
    Yup, that worked. So I did the same for the rest of all my
    sliders in my Component_UI and things seem to be running smoothly
    now.
    Does that make sense. Someone else might be able to see what
    I did and explain it better.
    Take care! I hope that helps someone.

  • Premiere Pro CS6 error - black flashes on frames - Basic 3D bug?

    I am currently working on a lyric music video which incorporates video and still image backgrounds with lyrics superimposed over the top in time to the music. I'm adding the lyrics by creating images with the words in Photoshop and then animating them (scrolling, spins, wipes, etc) in Premiere. All was going well until I tried a recent render and noitced that some effects were showing flashes of black on screen during text movement (flips or twists seem to be the culprit). I figured it was a render error but after trying a few different output methods and not curing the problem I realised I was getting the issue on the timeline when scrubbing through frame by frame. I've attached some images to demonstrate the problem. If I open an earlier saved version of the project then effect is fine on render and on scrubbing through the timeline. Have my later saved project files got corrupted at some point? If it was a software or hardware issue I would have expected it to have been happening from the outset but this effect has been fine until now. Is it fixable or do I have to go back a few versions and redo my recent work?
    Ok I've just realised while grabbing the attached images that the black frames appear to be occurring on the first frame of each new text still image - I don't know if that helps with identifying the problem?
    Ok another update - it appears to be the Basic 3D video effect that is causing the problem - if I remove that and have the text just appear then the black flashes go. But as I said above it worked fine in earlier project versions so it can work and isn't an inherent fault so I really hope I can find a solution and not have to remove the effect.
    Really hoping someone can solve this for me, it's only a hobby video not a job but I've put a lot of hours in and am nearly finished so would be pretty bummed if I can't resolve the problem.
    Thanks :-)

    An update - this is definitely looking like a bug!
    Each of the words is a separate Photoshop image cropped to the size of the word and I have then used the Basic 3D effect to rotate each image in turn from -90 degrees to 0 degrees so it appears on screen. Yesterday I tried changing the settings for the first clip and the black square disappeared if I reduced the range to -63 degrees to 0 degrees.
    Success! Or so i thought. I moved the the next image and changed the range to -63 degreees to 0 degrees but the black square remained. In face I had to reduce the start rotation down to -58 degrees before the black square disappeared from that image. This progression continued with each subsequent clip needing a futher reduction the starting rotation so by the time I got to the last image I the start rotation had to come down from -90 degrees to around -20 degrees.
    Defintely a bug? (It works the same whether I was using negative or positive start angles btw).
    I'll try using a different file format for the word images in case it's an issue with Photoshop image

  • Flash call director using getURL bug

    Hi!
    I am using Flash 8 and Director MX 2004, and I found out
    that, if I use getURL("lingo: function name...") to call director
    function, and if there is any error happened in this function call,
    it seems that director won't show any error message at all. Does
    anybody know how to make director display the error message? Here
    is an example to show the bug:
    http://www.storynest.com/TRANSFER/flashGetURLBug.zip
    if you click on the director button, it will show an error,
    but if you click on the flash button, which calls the same
    function, director produces no error...
    Thanks a lot for help!
    Hsin-Chien

    Sean Wilson wrote:
    > There's no way around this that I'm aware of. There are
    a few xtras I
    > have encountered (the Flash Asset or ActionScriptObjects
    xtra
    > included) that exhibit this behavior: if an error occurs
    in a method
    > whose stack root is a callback or a method of the xtra,
    execution
    > stops and no error is thrown.
    I suggest to switch on a boolean flag as last line of issued
    methods.

  • Flex DataGrid Component

    Can i extend the Flex DataGrid using ActionScript and create as  Add-On Component ?

    I've been trying to get this to work.  But i'm having issues   Not sure if it's related to the Array binding limitation mentioned in the release notes.  Maybe someone else has some ideas.
    I'm trying to bind to the dataProvider property of the DataGrid.  That way when the user in Xcelsius selects a range, it will bind the data in the excel sheet to the DataGrid.
    Problem is that i'm only getting one value to update (specifically the top value).  At this time i'm only trying to bind a single column of data.
    I noted that the commitProperties function gets called whenever a cell changes that i'm bound to, but the dataProvider is only receiving the first value of the array.  Even odder is that the ArrayCollection that i receive simply looks like this:
    commitProp:dataProvider=(mx.collections::ArrayCollection)#0
      filterFunction = (null)
      length = 1
      list = (mx.collections::ArrayList)#1
        length = 1
        source = (Array)#2
          [0] 1
        uid = "A37C62CC-F3DC-E1B1-8159-CE984C2CCE33"
      sort = (null)
      source = (Array)#2
    So i see that i get an array collection of ArrayList objects, the first one of which simple contains the value in the excell sheet "1".
    I noted that the proxy.bind function has a parameter called "chain", maybe this is what i need to get multiple value binding?  The documentation for the calls are pretty basic, which is understandable as this is new technology.
    So anyone have some ideas?  Maybe someone from BO who is apart of the SDK group can comment?

Maybe you are looking for

  • Drag and drop functionality in CM25

    Hello Experts,      I am trying to configure CM25 so that when you drag and drop to change the start and end times on an operation within a process order, but to block the work centre being changed.  Ideally I like the user to be prompted to ensure t

  • Negotiating a port number from the OS

    All the socket classes require a port number to be specified. No problem, except as one of the requirements at work, I need to make a server that negotiates with the OS to receive a free port number. I can not hard code any numbers or receive them fr

  • ALE Inbound Error Handling

    Hi Here I have problem in setting up Error handling in outbound/inbound processing of Idocs in ALE.... Can any one please explain how to do it.... My requirement is, if ever idoc goes in to error then the user has to be intimated by mail in SAP Inbox

  • Bluetooth Mighty Mouse Problems - NO RIGHT CLICK.

    i tried dozens of times... i can't use the right click. it acts as a primary button even though i set it to secondary... is there another way of setting it so that it is secondary that i didn't do so that it would cause such a phenomenon? I NEED HELP

  • How to raise popup when we enter the data on Partcular field

    Hi All, I have an issue in Sales Order in WEBUI, In the Sales Order when we enter the Customer Request Delivery Date field the popup sholu come,If any body have please do the need full for me. Component: BT115H_SLSO Regards, Shanmukesh P