Display/Edit Properties in a Table

Hello everyone,
i'm currently writing a javafx2 app for my bachelor thesis.
in that app, i need a table like view to display the properties in.
but, a normal TableView doesn't do what i want:
a TableView expects a new object for each Row, and displays the columns (aka properties) sideways
but i need them displayed downwards.
my first attempt was a normal tableview, but i didn't manage to display them the way i wanted
my 2nd attempt, was a combination of a splitpane and 2 ListViews, which in fact worked, regarding the way properties/their names were displayed.
but: i didn't manage to make the ListCells editable...
i'll post a short code, containing an example class that i want to display, and the code of my 2nd attempt.
would be great if you could guide me to either a solution with the TableView, as i'd preferr that solution, or hint me how to make ListCells in a ListView editable.
public class MyClass
   private String name;
   private String type;
   private Double creationTime;
   public MyClass(MyObject object)
      this.name = object.getName();
      this.type = object.getType();
      this.creationTime = object.getCreationTime();
   public String getName()
      return this.name;
   public void setName(String newName)
      this.name = newName;
   public String getType()
      return this.type;
   public void setType(String newType)
      this.type = newType;
   public Double getCreationTime()
      return this.creationTime;
   public void setCreationTime(Double newCreationTime)
      this.CreationTime = newCreationTime;
}that's the class of the object whose properties i want to displayed/edited
public class MyListView extends SplitPane {
    ListView propertyNamesListView;
    ListView propertyValuesListView;
    private MyObject object;
    private ObservableList<String> propertyName;
    private ObservableList<String> propertyValue;
    static class EditableListCell extends ListCell<String>{
        public EditableListCell() {
            super();
            this.setEditable(true);
        @Override
        public void updateItem(String item, boolean empty)
            super.updateItem(item, empty);
            setText(item);
            setEditable(true);
    public MyListView()
        propertyNamesListView = new ListView();
        propertyValuesListView = new ListView();
        propertyValuesListView.setEditable(true);
        propertyValuesListView.setCellFactory(new Callback<ListView<String>, ListCell<String>>() {
            @Override public ListCell<String> call(ListView<String> list) {
                return new EditableListCell();
        propertyValuesListView.getFocusModel().focusedIndexProperty().addListener(new ChangeListener() {
            @Override
            public void changed(ObservableValue observable, Object oldValue, Object newValue) {
                if(newValue instanceof Integer)
                    propertyValuesListView.edit((Integer)newValue);
        this.getItems().addAll(propertyNamesListView, propertyValuesListView);
    public void setObject(MyObject object)
        this.object = object();
        propertyValue = FXCollections.observableArrayList();
        propertyValue.add(object.getName());
        propertyValue.add(object.getType());
        propertyValuesListView.setItems(propertyValue);
        propertyName = FXCollections.observableArrayList("Name", "Type");
        propertyNamesListView.setItems(propertyName);
}that's my take on the combined ListViews, but i can't edit the fields :(
i really hope that you can help me, looking forward for your responses :-)

Thank you Carsten,
I had the wrong Item.
I used "display as text (saves state)"....
Regards,
Tim

Similar Messages

  • Object ID and Object ID Version fields in Displaying Object Properties - XI

    Hi,
    In displaying Object Properties in XI we can see different fields like Type, Description, SCV, Object ID, Object ID Version, Status, Person Responsible, Changed On, Changed By, Display Language, Original Language.
    But when i refer to the SAP Library documentation for these fields, Object ID and Object ID Version are not included. Here is the link for the documentation
    http://help.sap.com/saphelp_nw04/helpdata/en/f0/fc9a3de2ec0753e10000000a114084/frameset.htm
    http://help.sap.com/saphelp_nw04s/helpdata/en/f0/fc9a3de2ec0753e10000000a114084/frameset.htm
    With that said, i have no information on those two fields, only assumptions i've made that i would like to verify in this forum with the questions below
    1.
    Please correct me if i'm wrong, the Object ID is the unique identifier for the object and the Object ID Version is directly connected with the versioning concept for IR and ID, so the Object ID is generated when you create the object  (e.g. MM) and the Object ID Version changes every time that object is edited and change list activated for it. Is this correct?
    Or does the Object ID change every time the object is edited and change list activated for it?
    What is the behavior of these two fields when transported? e.g. dev to qa...  are they both retained on the target IB's?  (specifically for ID objects because the change list needs to be activated first on the target ID)
    2.
    Does any one know where the Object ID and Object ID Version gets stored?  (saved on a table in the ABAP stack or saved somewhere in the Java stack? e.g. can be viewed in Visual Admin or a URL)  I am thinking of extracting all the XI objects with their corresponding Object ID and Object ID Version (per system) in one step.  I know this is possible only if the Object ID & Object ID Version are stored in an ABAP table...
    Kindly give me some inputs.
    Please answer directly with the questions above. I will reward points for it.
    Thanks in advance.

    HI,
    >Please correct me if i'm wrong, the Object ID is the unique identifier for the object and the Object ID Version is directly connected with the versioning concept for IR and ID, so the Object ID is generated when you create the object (e.g. MM) and the Object ID Version changes every time that object is edited and change list activated for it. Is this correct?
    The Object Id is created the first time you create the object.
    Object Version Id is created the first time you save/activate a object.
    Now suppose if you modify the object a new Object Version Id will be created but the Object ID will remain the same.
    For IR Objects the Object Id & Object Version ID will remain the same across systems.
    For ID Objects the Object Id & Object Version ID is not the same across systems.
    Not sure about the table. Can you try in SE11 and check all tables with SXMS*. Could be also that tables might not be available from GUI i.e you might have to login to DB to find out.
    Regards,
    Sumit

  • ADF Faces Query Panel: How to display master data in detail table?

    Before stating the question, here is the background:
    I've a Fusion ADF (model/viewController) app that includes 2 tables with a master-detail relationship. The master table stores error numbers and associated levels of logging severity; the detail table stores the actual message text. These need to be separate, related tables because the requirement is that message text for a given error number can vary by product release.
    Messages are added in a bounded task flow; data for the master table entered in 1 fragment, data for the detail table in a 2nd page fragment. In the app, the Entity Objects for these tables are related with a foreign key association and have a composition association. This was done because the error numbers are generated in an Oracle DB sequence, and from what i have read that is a way in a task flow to have ADF put the number generated for the master table into the related key of the child table.
    The question is this:
    I need to create an ADF query panel with a table that searches on the detail DB table. However, i also need to use a couple of fields from the master DB table in both the query and in the ADF table. In addition, I need to add the ability for the user to edit either the master or detail record for the row he/she selects in the ADF table. I know how to create a view that would display the info i need; however, i have not been able to figure out how to obtain the keys for the selected ADF table row and pass them to the task flows that would edit.
    The master table has a numeric primary key. The detail table primary key consists of a foreign key to the master key and also a release number.
    I'm new to ADF and have been struggling with how to do this: i've a workaround that is functional but too klunky to be a permanent solution. So, could someone point me to some information on how to accomplish this?
    Versions: JDeveloper 11.1.1.4, ADF Business Components 11.1.1.59.23
    Thanks for your help!

    Thanks. I tried this out, but ran into an issue in that the detail table has 2 keys - a foreign key to the master primary key, and a 2nd key that uniquely distinguishes the detail. So i tried various things centered around using the SetCurrentRowWithKey operation and trying to obtain the selected ADF table row using an EL OF #{data.<pageDef>.<Iterator>.currentRowKeyString}; however i could not get the detail record for the selected row to display.
    I did find another approach that worked - I am wondering, is there anything problematic with this approach?:
    1. Create a VO joining the Master and Detail tables, with the Detail table being updatable.
    2. Made sure the applicable attributes were defined as keys.
    3. Add a query panel w/table using this VO.
    4. Create an ADF form based on the VO, showing the updatable fields.
    5. Create a bounded task flow with the following set on the Behavior tab:
    a. Share data controls with calling task flow
    b. Always Begin Transaction
    I specifically am wondering whether "Share data controls with calling task flow" has any negative implications or gotchas to handle. The doc at http://download.oracle.com/docs/cd/E21764_01/web.1111/b31974/taskflows_parameters.htm#ADFFD1693 doesn't suggest so, but just wanted to double-check before I go down this path.

  • How can i Display images with may own table

    Hi
    I want display images with my own table. How can I use in this query.
    SELECT    '<a href="#" onclick="javascript:'
           || 'getImageHeight(''my_img'
           || '#ROWNUM#'');javascript:redirect'
           || '(''f?p=&APP_ID.:212'
           || ':&SESSION.:DISPLAY:NO::P212_IMAGE_ID:'
           || ID
           || ''');">'
           || '<img src="#IMAGE_PREFIX#edit.gif" '
           || 'alt="Edit"></a>' ID,
              '<img id="my_img'
           || '#ROWNUM#" src="#WORKSPACE_IMAGES#'
           || filename
           || '"/>' image
      FROM wwv_flow_filesThanks
    Nr
    Edited by: user10966033 on Sep 28, 2009 1:41 PM

    You don't use #workspace_images# since that is for STATIC files, not images in a table..
    see this thread for help: Re: Display image from blob
    Thank you,
    Tony Miller
    Webster, TX

  • To display total records in a table through Go URL

    Hi All,
    Can anyone give me the solution how to display all the records of a table through Go URL. Actually according to the documentation provided by the oracle or the stuff in the blogs, We can write Go URL to display all the records in a table in two methods.
    1) To change the properties of a table and use the basic Go URL.
    2) Adding Action=Scroll&P5=-1&ViewID=go~Table to the Go URL.
    First one is not a solution in our case, According to our scenario we should not change table properties because If we change the properties and display the whole records in one page... it will impact the performance.
    Coming to the second, we tried to append this part in the report Go URL. But It gave Assertion Failure Error.
    Anybody please provide a solution how to write a Go URL to get all the records in the table.

    Hi All,
    Can anyone give me the solution how to display all the records of a table through Go URL. Actually according to the documentation provided by the oracle or the stuff in the blogs, We can write Go URL to display all the records in a table in two methods.
    1) To change the properties of a table and use the basic Go URL.
    2) Adding Action=Scroll&P5=-1&ViewID=go~Table to the Go URL.
    First one is not a solution in our case, According to our scenario we should not change table properties because If we change the properties and display the whole records in one page... it will impact the performance.
    Coming to the second, we tried to append this part in the report Go URL. But It gave Assertion Failure Error.
    Anybody please provide a solution how to write a Go URL to get all the records in the table.

  • Display 2D array in a table, 1 row at a time

    I am using a For Loop to read a serial port 40 times and display the values in a table of 40 rows and 5 columns.  I auto index the output of the For Loop to build the 2D string array. The problem is that the serial port takes too long to answer and the VI takes about two minutes to display the values in the table because it doesn't do it until the For Loop finish its 40 iterations. Is it possible to display each iteration as it executes? I mean, to pass the value of the 1st iteration to the 1st row of the table and then do the 2nd iteration, pass its value to the 2nd row of the table and so on? Thanks a lot! (Merry Christmas to the ones that celebrate it)
    Solved!
    Go to Solution.

    Hello Farracillo,
    Your welcome,
    It's pretty cool to have backup if an answer mach correctly for a problem and so
    others members don't have to work on , i mean for more complexes questions
    and ever even more cool to give/receive kudos to keep up motivation ...
     see you for others questions...
    @+
    Tinnitus
    Message Edité par tinnitus le 12-26-2008 09:33 AM
    CLAD / Labview 2011, Win Xp
    Mission d'une semaine- à plusieurs mois laissez moi un MP...
    RP et Midi-pyrénées .Km+++ si possibilité de télétravail
    Kudos always accepted / Les petits clicks jaunes sont toujours appréciés
    Don't forget to valid a good answer / pensez à valider une réponse correcte

  • Saved Shopping Cart Display/Edit functions are not working

    Hello SRM experts,
    The problem that I have is that the buttons like Display, Edit, etc are not working on a saved Shopping Cart. What is the best way to debug this problem? How would I find out what methods are being called on the SRM system or if some entries are missing in some table for BUS2121?
    We are on SRM 7.0 PPS SPS 5, Portal 7.01 SPS 5.0.
    Thanks,
    Mani

    Hi Mani,
    We are also facing a similar issue. Our protocol is HTTP throughout but still the issue persists.
    Can you shed some light on any other config that you changed?
    Regards,
    Nikhil

  • How to replace document edit-properties buttons

    We have replaced the "Edit Properties" ribbon button with the following element XML:
    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <CustomAction
    Sequence="20"
    Location="CommandUI.Ribbon"
    RegistrationId="101"
    RegistrationType="List"
    Title="New EditProperties">
    <CommandUIExtension>
    <CommandUIDefinitions>
    <CommandUIDefinition Location="Ribbon.Documents.Manage.EditProperties">
    <Button Id="Ribbon.Documents.Manage.EditProperties.ReplacementButton"
    Command="MyNewButtonCommand"
    Image16by16="/_layouts/$Resources:core,Language;/images/formatmap16x16.png" Image16by16Top="-128" Image16by16Left="-224"
    Image32by32="/_layouts/$Resources:core,Language;/images/formatmap32x32.png" Image32by32Top="-128" Image32by32Left="-96"
    LabelText="$Resources:core,ButEditProperties;"
    ToolTipTitle="$Resources:core,ButEditProperties;"
    ToolTipDescription="$Resources:core,cui_STT_ButEditDocumentProperties;"
    TemplateAlias="o1"
    />
    </CommandUIDefinition>
    </CommandUIDefinitions>
    <CommandUIHandlers>
    <CommandUIHandler Command="MyNewButtonCommand" CommandAction= "Javascript:
    function demoCallback(dialogResult, returnValue)
    SP.UI.Notify.addNotification('Operation Successful!');
    SP.UI.ModalDialog.RefreshPage(SP.UI.DialogResult.OK);
    var ctx = SP.ClientContext.get_current();
    var items = SP.ListOperation.Selection.getSelectedItems(ctx);
    var myItems = '';
    var k;
    for (k in items)
    myItems += '|' + items[k].id;
    var options = {
    url: '/_layouts/DCMLibrarySettings/LibraryDcmSetting.aspx?List={01610989-0039-4cbe-9890-38d685af0334}',
    tite: 'Set Document Properties',
    allowMaximize: true,
    showClose: false,
    width: 800,
    height: 600,
    dialogReturnValueCallback: demoCallback };
    SP.UI.ModalDialog.showModalDialog(options);" />
    </CommandUIHandlers>
    </CommandUIExtension>
    </CustomAction>
    </Elements>
    However, we are unsure how to repeat this for the following document "Edit properties" option:
    Can anyone tell us where to find the XML definition for this please?

    Hi,
    Here is a workaround for your reference:
    We can add a new ECB Menu use the following XML definition.
    <?xml version="1.0" encoding="utf-8"?>
    <Elements xmlns="http://schemas.microsoft.com/sharepoint/">
    <CustomAction
    Id="ReplaceEditProperties"
    RegistrationType="List"
    RegistrationId="101"
    ImageUrl="/_layouts/images/edititem.gif"
    Location="EditControlBlock"
    Sequence="220"
    Title="Replace Edit Properties" >
    <UrlAction Url="javascript:alert('Test')"/>
    </CustomAction>
    </Elements>
    Then hide the old "Edit Properties" option using CSS, add the following Style into a Content Editor Web Part.
    <style>
    LI[text='Edit Properties'] {
    DISPLAY: none !important
    </style>
    More information:
    http://www.thespgeek.com/2011/01/how-to-add-custom-menu-item-in.html
    Best Regards,
    Dennis Guo
    TechNet Community Support
    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact
    [email protected]

  • Problem in capturing the edited data while the table is sorted

    hi,
    i am using the TableSorter class provided by the sun tutorials to add sorting capability for my JTable. i need to print on the screen, the value of the cell whenever it is updated. so i am using TableModelListener and its tableChanged() method for this purpose. if i edit the data without applying the sorting then its printing fine. But if i edit the data with table sorted in a particular order by clicking on the table header then the tableChanged method is not being called. So some problem lies in the table sorter which is preventing the call to the tableChanged method whenver table it is sorted. Below is my implementation of JTable.
    TableSorter sorter = new TableSorter(new MyTableModel());
    final JTable table = new JTable(sorter);
    table.getModel().addTableModelListener(new
    TableModelListener()
         public void tableChanged(TableModelEvent e)
              int row = e.getFirstRow();
                                               int column = e.getColumn();
              System.out.println("Row: "+row+" Coloumn:  "+column);
    );Hope u understood the problem. plzz help
    thanx

    hi camickr,
    However the row number displayed is always the row of
    the TableModel before the data has been sorted. this is the feature i am trying for and couldnt achieve it. i do want to print the row of tablemodel before data is sorted but i am getting 0 and -1 as row and column numbers.
    I never saw -1 as a column number.
    if you have never seen -1 as column number then just compile and run the code given below. I just added a table model listener to the table model to capture data editing. So if u edit any cell without applying sorting then its row and column number is printed properly but if u sort a particlar column and with sorting on if u edit any cell you will get row No. as 0 and column No. as -1. try running below code and please let me know where the problem exists or post your code which worked without any of the above problems.
    I believe the code was updated in Feb of this year,
    so make sure you have the most recent version.yes i have the latest version of tablesorter.
    below is my source code for table sorting just compile and run it
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.sql.*;
    import javax.swing.table.*;
    import java.util.*;
    class TableSorterDemo extends JFrame
         public TableSorterDemo()
         setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
         TableSorter sorter=new TableSorter(new MyTableModel());
         JTable table=new JTable(sorter);
         sorter.setTableHeader(table.getTableHeader());
         table.getModel().addTableModelListener(new
    TableModelListener()
         public void tableChanged(TableModelEvent e)
              int row = e.getFirstRow();
            int column = e.getColumn();
              System.out.println("Row :"+row+" Column: "+column);
         JScrollPane scrollPane = new JScrollPane(table);
         scrollPane.setBackground(new Color(198,232,189));
         add(scrollPane);
         pack();
         setVisible(true);
          class MyTableModel extends AbstractTableModel {
            final String[] columnNames = {"First Name",
                                          "Last Name",
                                          "Sport",
                                          "# of Years",
                                          "Vegetarian"};
            final Object[][] data = {
                {"Mary", "Campione",
                 "Snowboarding", new Integer(5), new Boolean(false)},
                {"Alison", "Huml",
                 "Rowing", new Integer(3), new Boolean(true)},
                {"Kathy", "Walrath",
                 "Chasing toddlers", new Integer(2), new Boolean(false)},
                {"Sharon", "Zakhour",
                 "Speed reading", new Integer(20), new Boolean(true)},
                {"Angela", "Lih",
                 "Teaching high school", new Integer(4), new Boolean(false)}
            public int getColumnCount() {
                return columnNames.length;
            public int getRowCount() {
                return data.length;
            public String getColumnName(int col) {
                return columnNames[col];
            public Object getValueAt(int row, int col) {
                return data[row][col];
             * JTable uses this method to determine the default renderer/
             * editor for each cell.  If we didn't implement this method,
             * then the last column would contain text ("true"/"false"),
             * rather than a check box.
            public Class getColumnClass(int c) {
                return getValueAt(0, c).getClass();
             * Don't need to implement this method unless your table's
             * editable.
            public boolean isCellEditable(int row, int col) {
                //Note that the data/cell address is constant,
                //no matter where the cell appears onscreen.
                if (col < 2) {
                    return false;
                } else {
                    return true;
             * Don't need to implement this method unless your table's
             * data can change.
            public void setValueAt(Object value, int row, int col) {
                    data[row][col] = value;
                    fireTableCellUpdated(row, col);
                   //     System.out.println("row "+row+"Col "+col+"Val "+value);
         public static void main(String[] args)
         new TableSorterDemo();
       /*Table Sorter Class*/
    class TableSorter extends AbstractTableModel {
        protected TableModel tableModel;
        public static final int DESCENDING = -1;
        public static final int NOT_SORTED = 0;
        public static final int ASCENDING = 1;
        private static Directive EMPTY_DIRECTIVE = new Directive(-1, NOT_SORTED);
        public static final Comparator COMPARABLE_COMAPRATOR = new Comparator() {
            public int compare(Object o1, Object o2) {
                return ((Comparable) o1).compareTo(o2);
        public static final Comparator LEXICAL_COMPARATOR = new Comparator() {
            public int compare(Object o1, Object o2) {
                return o1.toString().compareTo(o2.toString());
        private Row[] viewToModel;
        private int[] modelToView;
        private JTableHeader tableHeader;
        private MouseListener mouseListener;
        private TableModelListener tableModelListener;
        private Map columnComparators = new HashMap();
        private java.util.List sortingColumns = new ArrayList();
        public TableSorter() {
            this.mouseListener = new MouseHandler();
            this.tableModelListener = new TableModelHandler();
        public TableSorter(TableModel tableModel) {
            this();
            setTableModel(tableModel);
        public TableSorter(TableModel tableModel, JTableHeader tableHeader) {
            this();
            setTableHeader(tableHeader);
            setTableModel(tableModel);
        private void clearSortingState() {
            viewToModel = null;
            modelToView = null;
        public TableModel getTableModel() {
            return tableModel;
        public void setTableModel(TableModel tableModel) {
            if (this.tableModel != null) {
                this.tableModel.removeTableModelListener(tableModelListener);
            this.tableModel = tableModel;
            if (this.tableModel != null) {
                this.tableModel.addTableModelListener(tableModelListener);
            clearSortingState();
            fireTableStructureChanged();
        public JTableHeader getTableHeader() {
            return tableHeader;
        public void setTableHeader(JTableHeader tableHeader) {
            if (this.tableHeader != null) {
                this.tableHeader.removeMouseListener(mouseListener);
                TableCellRenderer defaultRenderer = this.tableHeader.getDefaultRenderer();
                if (defaultRenderer instanceof SortableHeaderRenderer) {
                    this.tableHeader.setDefaultRenderer(((SortableHeaderRenderer) defaultRenderer).tableCellRenderer);
            this.tableHeader = tableHeader;
            if (this.tableHeader != null) {
                this.tableHeader.addMouseListener(mouseListener);
                this.tableHeader.setDefaultRenderer(
                        new SortableHeaderRenderer(this.tableHeader.getDefaultRenderer()));
        public boolean isSorting() {
            return sortingColumns.size() != 0;
        private Directive getDirective(int column) {
            for (int i = 0; i < sortingColumns.size(); i++) {
                Directive directive = (Directive)sortingColumns.get(i);
                if (directive.column == column) {
                    return directive;
            return EMPTY_DIRECTIVE;
        public int getSortingStatus(int column) {
            return getDirective(column).direction;
        private void sortingStatusChanged() {
            clearSortingState();
            fireTableDataChanged();
            if (tableHeader != null) {
                tableHeader.repaint();
        public void setSortingStatus(int column, int status) {
            Directive directive = getDirective(column);
            if (directive != EMPTY_DIRECTIVE) {
                sortingColumns.remove(directive);
            if (status != NOT_SORTED) {
                sortingColumns.add(new Directive(column, status));
            sortingStatusChanged();
        protected Icon getHeaderRendererIcon(int column, int size) {
            Directive directive = getDirective(column);
            if (directive == EMPTY_DIRECTIVE) {
                return null;
            return new Arrow(directive.direction == DESCENDING, size, sortingColumns.indexOf(directive));
        private void cancelSorting() {
            sortingColumns.clear();
            sortingStatusChanged();
        public void setColumnComparator(Class type, Comparator comparator) {
            if (comparator == null) {
                columnComparators.remove(type);
            } else {
                columnComparators.put(type, comparator);
        protected Comparator getComparator(int column) {
            Class columnType = tableModel.getColumnClass(column);
            Comparator comparator = (Comparator) columnComparators.get(columnType);
            if (comparator != null) {
                return comparator;
            if (Comparable.class.isAssignableFrom(columnType)) {
                return COMPARABLE_COMAPRATOR;
            return LEXICAL_COMPARATOR;
        private Row[] getViewToModel() {
            if (viewToModel == null) {
                int tableModelRowCount = tableModel.getRowCount();
                viewToModel = new Row[tableModelRowCount];
                for (int row = 0; row < tableModelRowCount; row++) {
                    viewToModel[row] = new Row(row);
                if (isSorting()) {
                    Arrays.sort(viewToModel);
            return viewToModel;
        public int modelIndex(int viewIndex) {
            return getViewToModel()[viewIndex].modelIndex;
        private int[] getModelToView() {
            if (modelToView == null) {
                int n = getViewToModel().length;
                modelToView = new int[n];
                for (int i = 0; i < n; i++) {
                    modelToView[modelIndex(i)] = i;
            return modelToView;
        // TableModel interface methods
        public int getRowCount() {
            return (tableModel == null) ? 0 : tableModel.getRowCount();
        public int getColumnCount() {
            return (tableModel == null) ? 0 : tableModel.getColumnCount();
        public String getColumnName(int column) {
            return tableModel.getColumnName(column);
        public Class getColumnClass(int column) {
            return tableModel.getColumnClass(column);
        public boolean isCellEditable(int row, int column) {
            return tableModel.isCellEditable(modelIndex(row), column);
        public Object getValueAt(int row, int column) {
            return tableModel.getValueAt(modelIndex(row), column);
        public void setValueAt(Object aValue, int row, int column) {
            tableModel.setValueAt(aValue, modelIndex(row), column);
        // Helper classes
        private class Row implements Comparable {
            private int modelIndex;
            public Row(int index) {
                this.modelIndex = index;
            public int compareTo(Object o) {
                int row1 = modelIndex;
                int row2 = ((Row) o).modelIndex;
                for (Iterator it = sortingColumns.iterator(); it.hasNext();) {
                    Directive directive = (Directive) it.next();
                    int column = directive.column;
                    Object o1 = tableModel.getValueAt(row1, column);
                    Object o2 = tableModel.getValueAt(row2, column);
                    int comparison = 0;
                    // Define null less than everything, except null.
                    if (o1 == null && o2 == null) {
                        comparison = 0;
                    } else if (o1 == null) {
                        comparison = -1;
                    } else if (o2 == null) {
                        comparison = 1;
                    } else {
                        comparison = getComparator(column).compare(o1, o2);
                    if (comparison != 0) {
                        return directive.direction == DESCENDING ? -comparison : comparison;
                return 0;
        private class TableModelHandler implements TableModelListener {
            public void tableChanged(TableModelEvent e) {
                // If we're not sorting by anything, just pass the event along.            
                if (!isSorting()) {
                    clearSortingState();
                    fireTableChanged(e);
                    return;
                if (e.getFirstRow() == TableModelEvent.HEADER_ROW) {
                    cancelSorting();
                    fireTableChanged(e);
                    return;
                int column = e.getColumn();
                if (e.getFirstRow() == e.getLastRow()
                        && column != TableModelEvent.ALL_COLUMNS
                        && getSortingStatus(column) == NOT_SORTED
                        && modelToView != null) {
                    int viewIndex = getModelToView()[e.getFirstRow()];
                    fireTableChanged(new TableModelEvent(TableSorter.this,
                                                         viewIndex, viewIndex,
                                                         column, e.getType()));
                    return;
                // Something has happened to the data that may have invalidated the row order.
                clearSortingState();
                fireTableDataChanged();
                return;
        private class MouseHandler extends MouseAdapter {
            public void mouseClicked(MouseEvent e) {
                JTableHeader h = (JTableHeader) e.getSource();
                TableColumnModel columnModel = h.getColumnModel();
                int viewColumn = columnModel.getColumnIndexAtX(e.getX());
                int column = columnModel.getColumn(viewColumn).getModelIndex();
                if (column != -1) {
                    int status = getSortingStatus(column);
                    if (!e.isControlDown()) {
                        cancelSorting();
                    // Cycle the sorting states through {NOT_SORTED, ASCENDING, DESCENDING} or
                    // {NOT_SORTED, DESCENDING, ASCENDING} depending on whether shift is pressed.
                    status = status + (e.isShiftDown() ? -1 : 1);
                    status = (status + 4) % 3 - 1; // signed mod, returning {-1, 0, 1}
                    setSortingStatus(column, status);
        private static class Arrow implements Icon {
            private boolean descending;
            private int size;
            private int priority;
            public Arrow(boolean descending, int size, int priority) {
                this.descending = descending;
                this.size = size;
                this.priority = priority;
            public void paintIcon(Component c, Graphics g, int x, int y) {
                Color color = c == null ? Color.GRAY : c.getBackground();            
                // In a compound sort, make each succesive triangle 20%
                // smaller than the previous one.
                int dx = (int)(size/2*Math.pow(0.8, priority));
                int dy = descending ? dx : -dx;
                // Align icon (roughly) with font baseline.
                y = y + 5*size/6 + (descending ? -dy : 0);
                int shift = descending ? 1 : -1;
                g.translate(x, y);
                // Right diagonal.
                g.setColor(color.darker());
                g.drawLine(dx / 2, dy, 0, 0);
                g.drawLine(dx / 2, dy + shift, 0, shift);
                // Left diagonal.
                g.setColor(color.brighter());
                g.drawLine(dx / 2, dy, dx, 0);
                g.drawLine(dx / 2, dy + shift, dx, shift);
                // Horizontal line.
                if (descending) {
                    g.setColor(color.darker().darker());
                } else {
                    g.setColor(color.brighter().brighter());
                g.drawLine(dx, 0, 0, 0);
                g.setColor(color);
                g.translate(-x, -y);
            public int getIconWidth() {
                return size;
            public int getIconHeight() {
                return size;
        private class SortableHeaderRenderer implements TableCellRenderer {
            private TableCellRenderer tableCellRenderer;
            public SortableHeaderRenderer(TableCellRenderer tableCellRenderer) {
                this.tableCellRenderer = tableCellRenderer;
            public Component getTableCellRendererComponent(JTable table,
                                                           Object value,
                                                           boolean isSelected,
                                                           boolean hasFocus,
                                                           int row,
                                                           int column) {
                Component c = tableCellRenderer.getTableCellRendererComponent(table,
                        value, isSelected, hasFocus, row, column);
                if (c instanceof JLabel) {
                    JLabel l = (JLabel) c;
                    l.setHorizontalTextPosition(JLabel.LEFT);
                    int modelColumn = table.convertColumnIndexToModel(column);
                    l.setIcon(getHeaderRendererIcon(modelColumn, l.getFont().getSize()));
                return c;
        private static class Directive {
            private int column;
            private int direction;
            public Directive(int column, int direction) {
                this.column = column;
                this.direction = direction;
    }

  • Custom SSIS Source: How do I make it create a new connection manager and display its properties window?

    I am writing a custom SSIS source that uses a standard SSIS Flat File Connection Manager. I have got a working UI that shows all usable connection managers in a dropdown list and allows the user to pick one. I would like to be able to have a button that
    the user can click on to create a new connection manager, and it would open the properties window for the new connection manager so it can be set up.
    Abridged code:
    Public Class MyNewSourceUI
    Implements IDtsComponentUI
    Private MetaData As IDTSComponentMetaData100
    Public Function Edit(ByVal parentWindow As IWin32Window, _
    ByVal variables As Variables, _
    ByVal connections As Connections) As Boolean _
    Implements Microsoft.SqlServer.Dts.Pipeline.Design.IDtsComponentUI.Edit
    Dim UIwin As New MyNewSourcePropertiesWindow(MetaData, connections)
    Return (UIwin.ShowDialog() = DialogResult.OK)
    End Function
    Public Sub Initialize(ByVal dtsComponentMetadata As IDTSComponentMetaData100, _
    ByVal serviceProvider As System.IServiceProvider) _
    Implements Microsoft.SqlServer.Dts.Pipeline.Design.IDtsComponentUI.Initialize
    MetaData = dtsComponentMetadata
    End Sub
    End Class
    Public Class MyNewSourcePropertiesWindow
    Inherits System.Windows.Forms.Form
    Private _metadata As IDTSComponentMetaData100
    Private _cnxions As Connections
    Public Sub New(ByVal ComponentMetaData As IDTSComponentMetaData100, ByVal connections As Connections)
    InitializeComponent()
    _metadata = ComponentMetaData
    _cnxions = connections
    ShowConnections()
    'Setup Existing Metadata '
    End Sub
    Private Sub ShowConnections()
    Me.cboConnection.Items.Clear()
    Me.cboConnection.Items.AddRange((
    From i As ConnectionManager In _cnxions _
    Where CType(i.Properties("CreationName").GetValue(i), String) = "FLATFILE" _
    AndAlso CType(i.Properties("Format").GetValue(i), String) = "Delimited" _
    Select i.Name).ToArray())
    End Sub
    Private Sub btnNewConnection_Click(ByVal sender as Object, ByVal e as System.EventArgs) Handles btnNewConnection.Click
    Dim newconn As ConnectionManager = _cnxions.Add("FLATFILE")
    ShowConnections()
    Me.cboConnection.SelectedItem = newconn.Name
    End Sub
    Private Sub btnCancel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnCancel.Click
    Me.DialogResult = DialogResult.Cancel
    Me.Close()
    End Sub
    Private Sub btnOK_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnOK.Click
    'Store any metadata changes '
    Me.DialogResult = DialogResult.OK
    Me.Close()
    End Sub
    End Class
    That's what I've got so far. I had assumed that adding a new connection would automatically display the properties window to the user (right?). However, in my tests, what actually happens is that it creates the new source with a random GUID for a name and no
    other properties set up, and puts it in the connections pane, and that's it. Not real useful.
    Obviously, something else is required to make the properties window appear, but I can't find what it is. There's no ShowUI() member on any of the classes I have, and I haven't been able to find out the name of the UI class that's used by the flat file source.
    Does anyone know how this is done? I know it can be done, because such a button exists in the normal Flat File Source UI.

    Yes, you need to drive the UI creation. I see you create a custom connection manager, in this case on how to build its UI please refer to http://kzhendev.wordpress.com/2013/08/07/part-2-adding-a-custom-ui-to-the-connection-manager/
    Arthur My Blog

  • How to get editable data into internal table

    Hi ABAPers,
    I am displaying REUSE_ALV_GRID_DISPLAY report with one editable field and i have post button in report. Once i select post button i need to get editable data to internal table which i passed to REUSE_ALV_GRID_DISPLAY.
    actually i am writing below code but data is not coming to internal table.
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
         i_callback_program                          =  sy-repid
         i_callback_pf_status_set                  = 'PF-STATUS'
         i_callback_user_command               = 'USER_COMMAND '
         it_fieldcat                                        = t_field[]
         i_default                                          = 'X'
        TABLES
          t_outtab                          =   <fs_display1>.       "t_display
    FORM user_command USING g_ucomm LIKE sy-ucomm
                   rs_selfield TYPE slis_selfield.
      g_test1 = g_ucomm.
      CASE g_ucomm.
        WHEN 'POST'.
          READ TABLE <fs_display1> ASSIGNING <fsw_display1> INDEX 1.    "Just for testing index 1
          IF sy-subrc = 0.
            w_display = <fsw_display1>.
            APPEND w_display TO t_display.
            CLEAR : w_display.
          ENDIF.
          PERFORM v1.
          PERFORM bapi_call.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND
    Please help me how to get.
    Regards,
    Raju.

    Hi,
    Try the following:
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = sy-repid
    i_callback_pf_status_set = 'PF-STATUS'
    i_callback_user_command = 'USER_COMMAND '
    it_fieldcat = t_field[]
    i_default = 'X'
    TABLES
    t_outtab = <fs_display1>. "t_display
    FORM user_command USING g_ucomm LIKE sy-ucomm
    rs_selfield TYPE slis_selfield.
    g_test1 = g_ucomm.
    CASE g_ucomm.
    WHEN 'POST'.
    * to reflect the data changed into internal table
          DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
          IF ref_grid IS INITIAL.
            CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
              IMPORTING
                e_grid = ref_grid.
          ENDIF.
          IF NOT ref_grid IS INITIAL.
            CALL METHOD ref_grid->check_changed_data.
          ENDIF.
    READ TABLE <fs_display1> ASSIGNING <fsw_display1> INDEX 1. "Just for testing index 1
    IF sy-subrc = 0.
    w_display = <fsw_display1>.
    APPEND w_display TO t_display.
    CLEAR : w_display.
    ENDIF.
    PERFORM v1.
    PERFORM bapi_call.
    ENDCASE.
    ENDFORM. "USER_COMMAND
    Hope it helps.
    Regards,
    Gilberto Li

  • How to change font while displaying data through an ALV table in WDA?

    Hi all,
    I am displaying data through and ALV table. Now I want to change the FONT only for few rows. Is this possible?
    If so then do the needful to me..
    Thanks & Regards,
    Yugesh A.

    I believe as you have found 'LVC_FIELDCATALOG_MERGE' would only work with the classic dynpro (SAPGUI based) version of the ALV. 
    You won't be able to control the font the same way in the WDA version of the ALV.  You will need to create a custom cell editor for the column(s) in question.  You can then bind context attributes to the properties of the cell editor. You will need extra attributes in your bound context to control these settings on the row level.  Also you will be restricted by the changing the DESIGN property. This means only the values allowed for the DESIGN of the particluar UI element.  For a TextView that wouldn't be the font directly (the font of course comes from the Theme).
    DATA l_salv_wd_table TYPE REF TO iwci_salv_wd_table.
      l_salv_wd_table = wd_this->wd_cpifc_alv_adv( ).
      DATA l_table TYPE REF TO cl_salv_wd_config_table.
      l_table = l_salv_wd_table->get_model( ).
      data textview type ref to CL_SALV_WD_UIE_TEXT_VIEW.
      l_column = l_table->if_salv_wd_column_settings~get_column( 'ADD_PARTICIPANTS' ).
      create object textview.
      textview->SET_TEXT_FIELDNAME( 'ADD_PARTICIPANTS' ).
      textview->set_design_fieldname( 'ADD_DESIGN' ).
      textview->set_wrapping( abap_true ).
      l_column->set_cell_editor( textview ).
    DESIGN supports the following options:
    Value
    Visual Display
    Description
    emphasized
    Text is highlighted in default size
    groupTitle
    Header for forms
    This enumeration value is deprecated. Instead, use SectionHeader.
    header1
    Text is highlighted with font size +4 in relation to the default font size.
    header2
    Text is highlighted with font size +5.08 cm relation to the default font size.
    header3
    Text is highlighted in default size
    header4
    Text is highlighted in font size -1 (small) in relation to the default font size (like the legend but highlighted)
    label
    Text is display in the default font type. A space is always inserted after the text.
    label_small
    Text is displayed in default font type, as with label, onyl that font size is -1 (like the font size for header4).
    legend
    Text is displayed with default font type in size -1.
    reference
    Text is in italics and in default font size.
    standard
    Text is displayed in default font size. No text attributes are defined for this value.
    monospace
    Text is displayed in no-proportional font type. Each letter takes up the same space.

  • Edit properties link with SPMenuField in SPGridView

    Hi,
    I've a new questionfor my webPart that display search result in spgridview
    Do you know a method to propose in a SPMenuField on a SPGridView the link "edit properties"?
    We have this line to retrieve the edit form:
    string.Format("{0}{1}?ID={2}", item.Web.Url, item.ParentList.Forms[PAGETYPE.PAGE_EDITFORM].ServerRelativeUrl, item.ID);
    here is my menu entry
    MenuItemTemplate viewProperties = new MenuItemTemplate("Edit properties", "/_layouts/images/editDocument.gif");
    viewProperties.ClientOnClickNavigateUrl = "";
    //entry.ClientOnClickScript = "your javascript here";
    menuTpl.Controls.Add(viewProperties);
    I don't know what write in ClientOnClickNavigateUrl to go to the edit form related on each Item.
    How can i get the list for each item?
    thanks for your help

    Hello,
    Try to use "ClientOnClickNavigateUrl " and pass your URL here.
    string itemUrl = string.Format("{0}/{1}?ID={2}", web.Url, list.Forms[PAGETYPE.PAGE_DISPLAYFORM].Url, itemID);
    MenuItemTemplate editCustomer =
    new MenuItemTemplate("Edit", "/images/edit.gif");
    editCustomer.ClientOnClickNavigateUrl = itemUrl;
    customerMenu.Add(editCustomer);
    Refer this:
    http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.webcontrols.menuitemtemplate.clientonclickscript.aspx
    Hemendra:Yesterday is just a memory,Tomorrow we may never see
    Please remember to mark the replies as answers if they help and unmark them if they provide no help

  • Displaying fields from a Z Table on CRM UI

    Hello Experts
    I am trying to display fields from a custom table onto a CRM UI form view.
    1. I created a custom GENIL root object & Search object ie. ZCUSTOMER. & ZCUSTSEARCH
    2. Tested this in the GENIL BROWSER to ensure that I could enter update values to the table and retrieve it via the search object.
    3. Created a custom component ZCUSTOMER
    4. Created a view with this component ZCUSTOMER using the wizard -
         Model Name - CUSTINFO
         BOL Entity - ZCUSTOMER
         No links to the custom controller or higher level objects.(as I do not want to tie this to any standard components)
    Type of view - Form view
    7. Created a Context node for the component controller with the same info as I did for the view.
    8. Performed the binding of the view context node with the component controller context node.
    9. Configured 1 field CUST_NAME to be displayed on the view.
    10. Configured the run time repository to display the view.
    Now the issue is..
    When the view gets displayed, the field is displayed with the error "CUST_NAME not bound"
    What am i missing?
    Thanks
    RLX

    Hi Swati,
    Thanks for the feedback. I re-viewed the WD_CREATE_CONTEXT method of the view controller implementation class and I see the following code in there already-
    method WD_CREATE_CONTEXT.
      create the context
        context = cl_bsp_wd_context=>get_instance(
              iv_controller = me
              iv_type = 'ZL_ZCUSTOMER_BSPWDCOMPONEN_CTXT' ).
        typed_context ?= context.
    endmethod.
    Does that look right or do I need to modify it?
    Thanks once again for the help.
    RLX

  • How to display required data from emp table?

    Hi every one, this is my first post in this portal. I want display the details of emp table.. for that I am using this SQL statement.
    select * from emp where mgr=nvl(:mgr,mgr);
    when I give the input as 7698 it is displaying the corresponding records... and also when I won't give any input then it is displaying all the records except the mgr with null values.
    1)I want to display all the records when I won't give any input including nulls
    2)I want to display all the records who's mgr is null
    Is there any way to incorporate to include all these in a single query..

    Hi,
    937440 wrote:
    Hi every one, this is my first post in this portal. Welcome to the forum!
    Be sure to read the forum FAQ {message:id=9360002}
    I want display the details of emp table.. for that I am using this SQL statement.
    select * from emp where mgr=nvl(:mgr,mgr);
    when I give the input as 7698 it is displaying the corresponding records... and also when I won't give any input then it is displaying all the records except the mgr with null values.
    1)I want to display all the records when I won't give any input including nulls
    2)I want to display all the records who's mgr is null
    Is there any way to incorporate to include all these in a single query..It's a little unclear what you're asking.
    The following query always includes rows where mgr is NULL, and when the bind variable :mgr is NULL, it displays all rows:
    SELECT  *
    FROM     emp
    WHERE     LNNVL (mgr != :mgr)
    ;That is, when :mgr = 7698, it displays 6 rows, and when :mgr is NULL it displays 14 rows (assuming you're using the Oracle-supplied scott.emp table).
    The following query includes rows where mgr is NULL only when the bind variable :mgr is NULL, in which case it displays all rows:
    SELECT     *
    FROM     emp
    WHERE     :mgr     = mgr
    OR       :mgr       IS NULL
    ;When :mgr = 7698, this displays 5 rows, and when :mgr is NULL it displays 14 rows.
    The following query includes rows where mgr is NULL only when the bind variab;e :mgr is NULL, in which case it displays only the rows where mgr is NULL. That is, it treats NULL as a value:
    SELECT     *
    FROM     emp
    WHERE     DECODE ( mgr
                , :mgr, 'OK'
                )     = 'OK'
    ;When :mgr = 7698, this displays 5 rows, and when :mgr is NULL, it displays 1 row.

Maybe you are looking for

  • Startup Disk Memory Error

    I suddenly got a popup while playing Minecraft saying that my startup disk had run out of memory. Checking Macintosh HD's info, it was practically full even though the last time I downloaded anything I had over 70 GB free. Upon restart some of my Sys

  • AIA support for multiple brands implemented in multiple instances of Siebel

    Good Day! I would like to ask whether AIA has the capability to support multiple brands in terms of multiple instances of Siebel and BRM. I have a client wherein they have a scenario of: 1.) To launch 4 different brands which contain multiple service

  • New DW CS6 Update

    What the hell Adobe? You do this "update" and now my workspace is gone that I custom created. Fine I can fairly easily fix that even though you screwed it up. BUT... But now I look to add items to my Favorites Menu bar and you REMOVED a bunch of item

  • Cant save direct to jpg anymore, please help?

    My camera takes photos in .NEF format, which I convert to .DNG with adobes converter. After working on the raw file I want to save extra copies in .JPG but if I save directly and then try to open the image in paint, which I use to view images, I get

  • Reg: counter over reading .

    what is  "CntrOverReadg"  in the ik01  while creating measurement point counter. can any tell me the usage of this.  what data shd i"ve to enter in this cntrOverReadg