ALV table - cell editor??

Hi,
  I am facing a strange issue, that my alv table is opening as editable format even i havnt write editable coding in doinit() method. i have written my coding in domodify().
coding as follows:
WHEN 'PRIORITY'.
DATA: lr_column_settings_PRIORITY TYPE REF TO if_salv_wd_column_settings,
        lr_column_PRIORITY    TYPE REF TO cl_salv_wd_column,
        lr_input_field_PRIORITY TYPE REF TO CL_SALV_WD_UIE_DROPDOWN_BY_KEY.
lr_column_settings_PRIORITY ?= lo_value.
lr_column_PRIORITY = lr_column_settings_PRIORITY->get_column( 'PRIORITY').
if MODIFY_PARAM eq ABAP_TRUE.
*Getting the columns settings.
CREATE OBJECT lr_input_field_PRIORITY EXPORTING SELECTED_KEY_FIELDNAME = 'PRIORITY'.
lr_column_PRIORITY->set_cell_editor( lr_input_field_PRIORITY ).
lr_table_settings->set_read_only( abap_false ).
else.
    CREATE OBJECT lr_input_field_PRIORITY EXPORTING SELECTED_KEY_FIELDNAME = 'PRIORITY'.
    lr_input_field_PRIORITY->set_enabled( abap_false ).
lr_column_PRIORITY->set_cell_editor( lr_input_field_PRIORITY ).
lr_table_settings->set_read_only( abap_false ).
ENDIF.
What is wrong in this and how initially table is populating as editable?
Please help me on this issue.
Thanks,
GS

CREATE OBJECT lr_input_field_PRIORITY EXPORTING SELECTED_KEY_FIELDNAME = 'PRIORITY'.
lr_column_PRIORITY->set_cell_editor( lr_input_field_PRIORITY ).
lr_table_settings->set_read_only( abap_false ).
else.
CREATE OBJECT lr_input_field_PRIORITY EXPORTING SELECTED_KEY_FIELDNAME = 'PRIORITY'.
lr_input_field_PRIORITY->set_enabled( abap_false ).
lr_column_PRIORITY->set_cell_editor( lr_input_field_PRIORITY ).
lr_table_settings->set_read_only( abap_false ).
ENDIF.
Write down the Read only property in your code as ABAP_TRUE.

Similar Messages

  • How to create a context menu in ALV table cell editor(Webdynpro abap )

    Hello Experts,
    I am having a problem in creating a context menu in a table cell editor in the ALV table output.I have assigned a 'lta' as the cell editor.But befor assigning the lta as cell editor I have assigned the menu to the lta.But when the view is rendered I can see the lta with the actioned assigned to it.But I cannot see the context menu.
    The code snippet below:
      "Create menu for each coloumn
      create OBJECT lo_menu_actions type CL_SALV_WD_VE_MENU EXPORTING
          id = 'MITM_ACTIONS'.
      lo_menu_actions->set_visible( value = abap_true ). 
      lo_menu_actions->set_visible_fieldname( value = 'ACTIONS' ).
      "ADd menu items
      CREATE OBJECT lo_menu_item_create type CL_SALV_WD_VE_MENU
      exporting
        id = 'MITM_CREATE_EXPRESSION'.
      lo_menu_item_create->set_visible( value = abap_true ).
      lo_menu_item_create->set_visible_fieldname( value = 'Create' ).
      "Add item 1
      lo_menu_actions->ADD_ITEM( VALUE = lo_menu_item_create ). 
      "  Set the cell editor for each column cell(link to an action)
      LOOP AT lt_node_dec_tab_cols INTO ls_node_dec_tab_cols .
        lv_column_name = ls_node_dec_tab_cols-object_name.
        lr_column = lr_column_settings->get_column( lv_column_name ).
       "Create 'lta' Ui item
        CREATE OBJECT lo_lta TYPE cl_salv_wd_uie_link_to_action.
        lo_lta->set_menu( value = lo_menu_actions ).
        lo_lta->set_text_fieldname( lv_column_name ).
        lr_column->set_cell_editor( lo_lta ).
        IF ls_node_dec_tab_cols-is_result EQ abap_true.
          lr_column->set_cell_design( value =
                      cl_wd_table_column=>e_cell_design-key_medium ).
        ENDIF.
      ENDLOOP.

    Hi Prakash,
    I have not come across this requirement till now to have context menu in a cell editor of alv.
    Unfortunately  the implementation of method SET_MENU of alv ui elements ( ex: cl_salv_wd_uie_text_view ) is not updating alv configurable table, instead it just stores in a global attribute as string. Hence has no effect on context menu.
    If your user is very particular about this requirement of having context menu in cell editor, you can go for a normal table. Because, normal table's cell editor has the property to set the menuID as we do it for other ui elements.
    Regards,
    Rama

  • Small issue with custom table cell editor and unwanted table row selection

    I'm using a custom table cell editor to display a JTree. Thing i notice is that when i select a value in the tree pop-up, the pop-up closes (as it should) but then every table row, from the editing row to the row behind the pop-up when i selected the value becomes highlighted. I'm thinking this is a focus issue, but it thought i took care of that. To clairfy, look at this: Before . Notice how the "Straightening" tree item is roughly above the "Stock Thickness" table row? When i select Straightening, this is what happens to my table: After .
    My TreeComboBox component:
    public class TreeComboBox extends JPanel implements MouseListener {
        private JTextField itemField;
        private TreeModel treeModel;
        private ArrayList<ActionListener> actionListeners = new ArrayList<ActionListener>();
        private Object selectedItem;
         * Creates a new <code>TreeComboBox</code> instance.
         * @param treeModel the tree model to be used in the drop-down selector.
        public TreeComboBox(TreeModel treeModel) {
            this(treeModel, null);
         * Creates a new <code>TreeComboBox</code> instance.
         * @param treeModel the tree model to be used in the drop-down selector.
         * @param selectedItem tree will expand and highlight this item.
        public TreeComboBox(TreeModel treeModel, Object selectedItem) {
            this.treeModel = treeModel;
            this.selectedItem = selectedItem;
            initComponents();
         * Returns the current drop-down tree model.
         * @return the current <code>TreeModel</code> instance.
        public TreeModel getTreeModel() {
            return treeModel;
         * Sets the tree model.
         * @param treeModel a <code>TreeModel</code> instance.
        public void setTreeModel(TreeModel treeModel) {
            this.treeModel = treeModel;
         * Returns the selected item from the drop-down selector.
         * @return the selected tree object.
        public Object getSelectedItem() {
            return selectedItem;
         * Sets the selected item in the drop-down selector.
         * @param selectedItem tree will expand and highlight this item.
        public void setSelectedItem(Object selectedItem) {
            this.selectedItem = selectedItem;
            String text = selectedItem != null ? selectedItem.toString() : "";
            itemField.setText(text);
            setToolTipText(text);
         * Overridden to enable/disable all child components.
         * @param enabled flat to enable or disable this component.
        public void setEnabled(boolean enabled) {
            itemField.setEnabled(enabled);
            super.setEnabled(enabled);
        public void addActionListener(ActionListener listener) {
            actionListeners.add(listener);
        public void removeActionListener(ActionListener listener) {
            actionListeners.remove(listener);
        // MouseListener implementation
        public void mouseClicked(MouseEvent e) {
        public void mouseEntered(MouseEvent e) {
        public void mouseExited(MouseEvent e) {
        public void mousePressed(MouseEvent e) {
        public void mouseReleased(MouseEvent e) {
            showPopup();
        private void initComponents() {
            setLayout(new GridBagLayout());
            itemField = new JTextField();
            itemField.setEditable(false);
            itemField.setText(selectedItem != null ? selectedItem.toString() : "");
            itemField.addMouseListener(this);
            add(itemField, new GridBagConstraints(0, 0, 1, 1, 1.0, 0.0,
                    GridBagConstraints.WEST, GridBagConstraints.HORIZONTAL, new Insets(0, 0, 0, 0), 0, 0));
        private void showPopup() {
            final TreePopup popup = new TreePopup();
            final TreeComboBox tcb = this;
            final int x = itemField.getX();
            final int y = itemField.getY() + itemField.getHeight();
            int width = itemField.getWidth() + popupButton.getWidth();
            Dimension prefSize = popup.getPreferredSize();
            prefSize.width = width;
            popup.setPreferredSize(prefSize);
            SwingUtilities.invokeLater(new Runnable() {
                public void run() {
                    popup.show(tcb, x, y);
                    popup.requestFocusInWindow();
        private void fireActionPerformed() {
            ActionEvent e = new ActionEvent(this, ActionEvent.ACTION_PERFORMED, "TreeComboBoxSelection");
            for (ActionListener listener : actionListeners) {
                listener.actionPerformed(e);
        private class TreePopup extends JPopupMenu {
            private JTree tree;
            private JScrollPane scrollPane;
            public TreePopup() {
                initComponents();
                initData();
            private void initData() {
                if (treeModel != null) {
                    tree.setModel(treeModel);
            private void initComponents() {
                setFocusable(true);
                setFocusCycleRoot(true);
                tree = new JTree();
                tree.setRootVisible(false);
                tree.setShowsRootHandles(true);
                tree.setFocusable(true);
                tree.setFocusCycleRoot(true);
                tree.addTreeSelectionListener(new TreeSelectionListener() {
                    public void valueChanged(TreeSelectionEvent e) {
                        tree_valueChanged(e);
                scrollPane = new JScrollPane(tree);
                add(scrollPane);
            private void tree_valueChanged(TreeSelectionEvent e) {
                DefaultMutableTreeNode node = (DefaultMutableTreeNode) tree.getLastSelectedPathComponent();
                setSelectedItem(node.getUserObject());
                fireActionPerformed();
                this.setVisible(false);
    }My TreeComboBoxTableCellEditor:
    public class TreeComboBoxTableCellEditor extends AbstractCellEditor implements TableCellEditor, ActionListener {
        protected TreeComboBox treeComboBox;
        protected ArrayList<CellEditorListener> cellEditorListeners = new ArrayList<CellEditorListener>();
        public TreeComboBoxTableCellEditor(TreeComboBox treeComboBox) {
            this.treeComboBox = treeComboBox;
            treeComboBox.addActionListener(this);
        public Object getCellEditorValue() {
            return treeComboBox.getSelectedItem();
        public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) {
            treeComboBox.setSelectedItem(value);
            return treeComboBox;
        public void actionPerformed(ActionEvent e) {
            stopCellEditing();
    }Any thoughts?
    Edited by: MiseryMachine on Apr 3, 2008 1:21 PM
    Edited by: MiseryMachine on Apr 3, 2008 1:27 PM

    As I said, you have to have empty context elements before additional rows will be open for input.
    For instance if you want to start with 5 rows available for input do the following to your internal table that you will bind:
    data itab type standard table of sflight.
    do 5 times.
      append initial line to itab.
    enddo.
    context_node->bind_table( itab ).
    The other option if you need n number of rows is to add a button to the table toolbar for adding more rows. When this button is pressed, you add a new context element to the node - thereby creating a new empty row in the table.

  • Search help in case of a table cell editor

    Hi
    I need a search help in case of a table cell editor as well as the the other requirement is that it shld be a reusable one.
    could anyone of u suggest me some methods
    regards
    Nikhil Tapkir

    There are several ways of doing this.
    1. Use OVS
    2. Create a Search help in R3. Call the function module.
    3. Create a Jar file which would provide the result .
    It is upto you on which ever way you want to provide
    Kumar

  • Table Cell Editor which allows to input multiple lines of text...

    Hi there
    Does anyone know how to write a table cell editor which allows users to input multiple lines of text? please provide some sample if possible...
    Thanks
    Ken

    I'm assuming you also want the renderer to display multiple lines? if so, make a class that extends JTextArea and that implements the TableCellEditor and TableCellRenderer interfaces, then set instances of this as the editor and renderer for the TableColumn in question. The implementation of most of the methods in these interfaces is trivial, often just this.setBackground() based on the table.getSelectionBackground() or table.getBackground(), a this.setText() based on the value passed in, then just a 'return this'.
    You might want to make an abstract class which implements these interfaces for you, and which delegates to a simple abstract method that you override to return the renderer/editor component.
    Note that you must use two instances of the class you make, one for the renderer and one for the editor, since it must be able to be able to render the remainder of the table's cells without interfering with the JTextArea performing the editing. (alternatively you could make two classes that extend JTextArea, each just implementing one of the interfaces, but this is more effort I think.) Also note that you must increase the table's row height to get more than one row visible.

  • Problem in table cell editor

    Hai,
    I inserted as a dropdownkey in table, Parent node ABc is bind to table , the child node DEf bind to coloumn dropdownbyindex. i set child node singleton as false, but its giving null pointer exception.
    IXXXView.IABCNode iu=wdContext.nodeABC();
    IXXXView.IDEFElement c=iu.nodeDEF().createDEFElement();
    How to Solve this.
    Hope  Anil and Piyush will help me they already know about this problem.
    regards,

    Hai Bharadwaj,
          happy to see you again, I think I am in wrong with creating table cell editor.
    i will say my requirement please help me to do:
    in the table the first coloumn is number, second one is name, third one is *** ,this coloumn contains two standard Strings male and female, the can select from dropdown index.
    what i did is I created context node parent ABC
    in that attributes name , age and another node DEF having attribute S.
    I created a table and bind the node ABC(its not allow me to check DEF node).
    i deleted table cell editor of column *** and created new editor dropdownindex. and binded texts is node DEF
    DEF is set to singleton false.
    Give me the suggetion.
    regrds,

  • Table cell editor enabled property

    Hi,
    I am using NWDS 7.1 EHP1. I have actually created a table and assigned boolean type of context to the table cell editors. Though i make the context value true, the table cells are disabled. Please help me.
    Thanks,
    Prasanthi.

    Hi,
    To which property of the table cell editor have u binded the boolean attribute- enabled or read-only? coz read-only true always makes the field deiabled.
    After u have binded the boolean attribute, have u set the value in ur code? if not the fields remain disabled
    Regards,
    Poojith MV

  • Setting Visibility to Table cell editor

    Hi
    I created a table and added a colomn to the table in view layout. Cell editor of that colomn contains an image. Based on some conditions , I need to make image invisible in table cell editor of custom colomn.
    How can I do it.

    Example:
    Context:
    Rows (model node)
    -- Name (attribute, string)
    -- Additional (value node, card=1:1, selection=1:1, singleton=false)
    ---- EditorVisibility (attribute, type=Visibility)
    Data binding:
    LinkToAction.visible -> Rows.Additional.EditorVisibility
    Make editor in row at index 4 visible if name is not empty:
    IRowsElement row = wdContext.nodeRows().getRowsElementAt(4);
    row.currentAdditionalElement().setEditorVisibility(row.getName() != null && row.getName().length() > 0
      ? WDVisibility.VISIBLE
      : WDVisibility.NONE);
    Ok?
    Armin

  • How to change the colour of the table cell editor on some condition?

    Hi all,
    I have a requirment acco which i need to make the colour of the tableceleditor ias RED and font color white when the data in that is < 0.please tell me how is this possible and its urgent..
    regards
    Sharan

    If you are using release NW04 and have a TextView as table cell editor, you can do this:
    Add a calculated attribute "Color" of DDIC type "com.sap.ide.webdynpro.uielementdefinitions.TextViewSemanticColor" under the data source node of the table.
    Bind the "semanticColor" of the cell editor to this context attribute.
    Implement the get-method for the calc. attribute like this
    WDTextViewSemanticColor get<DataSourceNode>Color(I<DataSourceNode>Element element)
      return element.getValue() < 0 ? WDTextViewSemanticColor.NEGATIVE : WDTextViewSemanticColor.STANDARD;
    Armin

  • Dropdowns as table cell editors

    Hi
    Does anyone know how to use dropdowns as table cell editors.  I need to create a table where some of the columns have dropdowns as the editor and some don't. 
    I can create the dropdown(by index) by binding a node to the table(the DD list) and binding a subnode-attribute as the text val but that gives me the same list in all rows.  As this is bound to the table and not the column all drop downs would have the same data in the DD list

    Here is what we do for dropdowns that need different values according to the selected row.
    1. Use a DropDownByKey as the table cell editor.
    2. Use the getModifiableSimpleValueSet() API call to modify the values attached to the dropdown on every row selection event.
    We don't have the case where you wouldn't actually have an editor, but you can disable the dropdown if the list is empty, which accomplishes the same effect.
    Beware that if your keys and values are different, the keys not in the current dropdown will not show up correctly on the other rows.

  • WD ALV default cell editor

    How do you set a default cell editor for a web dynpro ALV table?

    if I want to prevent the tab key from moving the focus to next cell
    without satisfying certain conditions, what events or methods should I concentrateYou where given a working example of this in your last posting:
    http://forum.java.sun.com/thread.jspa?threadID=642364&messageID=3786315
    The example only overrides two methods. Only one of the methods has validation logic. So I would think it would be obvious which method to concentrate on.

  • Multi line issue in Table Cell Editor

    Hi,
    I am developing an occasionally connected application for handheld devices using NetWeaver Mobile 7.1. In one of the view, I have a table which display items information from the data source. In one of the column I need to display item description so I used TextEdit in the Cell Editor to display the information in multi line format and also wrapping is enabled.
    But during testing of the application the TextEdit control does not wraps the text and as well as only first line of TextEdit control is visible inside the table and rest of the rows are not visible because of table's row height is not adjusted to the TextEdit control. I couldn't find any option to vary the size of the row height of the table.
    Please suggest a solution to bring multi line display with in the table.
    Also, check out my other issue posted here.
    [Issue in wrapping of text in TextEdit control|Issue in wrapping of text in TextEdit control]
    Thanks in advance.
    Regards,
    DVR.
    Edited by: Vinodh Raj D on May 28, 2009 8:18 AM

    Hi Vinodh,
                   Mutliline text in a text view/edit control inside a table cell is not supported.
    You can view multiline text in a text view/edit as a seperate control inside a view. I think in case you want to see the whole address you can create a detail(s) view which can be navigated from the list (table) view.
    Regards,
    Nipun

  • Table Cell Editor

    Hi All,
    I created JTable. For one column I have given Combo box as editor.
    when the program is run, if I select any value in first row in combo box,
    the same value will be chosen for other rows also.That is if I just click in the other row's combo box, then the value which I choose in the first row will be updated wherever I clicked.
    How to rectify this problem.
    Thanks in advance.

    Hi,
    Thanks all for the reply.
    Actually during the new operation, it is working correctly.
    But it gives the issue in edit.Let me explain this with the example.
    In the combo box cell editor I have the following values.
    Red,Green,Blue,Yellow.
    During the edit opertion, for the specific user ,I fill his details from the database.For example in text box, I filled his name and in table his shirts in one column and the corresponding colors in combo box as second column.
    So shirt1 - red,shirt2 - Green....it goes like this....
    In the edit mode,I select Blue for shirt1.
    If I click in the second row's combo box, by default it selects Blue.But it should retain its original value(Green) only.
    But it sets the value which the first column gets selected......
    How to retain the old value....

  • Table Cell Editor (Urgent)

    I would like to know if it is possible to set different cell editor for each cells within the same column.
    I want to have Combo boxes with different items for several cells within the same column.
    Plz tell me how to do so if this is possible
    Thanks,
    MetaLik

    You could create you own custom editor.
    class MultiCellEditor extends JComponent {
    JComponent currentComp;
    JTextField f = new JTextField();
    JComboBox c = new JComboBox();
    public void setComponent(JComponent comp) {
    public JComponent getComponent() {
    public Object getCellEditorValue() {
    if( currentComp instanceof JTextField ) {
    return ((JTextField)currentComp).getText();
    }else if( currentComp instanceof JComboBox ) {
    return ((JComboBox)currentComp).getSelectedItem();
    return null;
    public Component getTableCellEditorComponent(JTable table, Object value,
    boolean isSelected,
    int row, int column) {
    if (row == 1 && col==2) {
    setCurrentComponent(textField);
    } else if(....) {
    return currentComponent;
    So what your editor does is gives the current component based on row and column and will have to populate the items correspondingly.

  • Web dynpro ALV table cell popin

    from my understanding, it is possible to create a cell popin for a standard table.
    but now i wonder whether is it possible to create a cell popin for an ALV table?

    My question was about option Filter of ALV report.
    May be somebody knows how I can receive Interfacecontroller
    attributes: FILTER_VALUES. It should help to filter
    table inside code( in my ONFUNCTION method).
    Regards
    Irena

Maybe you are looking for

  • How do I change the language setting in itunes

    I'm sure this is a very basic question but I just can't seem to find anywhere to change the language setting. I live in Japan but would rather use itunes in English as I've twice now deleted my entire phone book on my iphone and had to go to an old b

  • Capturing into Final Cut Express

    I work within Final Cut Express and up until now i was capturing footage via a sony camcorder with a firwire connect. But i have just recently bought a panasonic gs 500 which comes with a usb cable connection. So i plugged it in, opened Fianl Cut and

  • 'NAVIGATE_ABSOLUTE' method is not working in UWL

    We are working on Portal 7.0. Recently We have upgraded from SP 13-0 To 13-5. After this upgradation We are facing some problems, following is the scenario: 1.     We have a ABAP Web DynPro Application say 'A', which has button "View Details". 2.    

  • Determine OCFS2 Version

    Hi all, First off I'm not sure this is the best section so forgive me. We've got several OCFS2 1.4 clusters that have started getting the "No Space Left on Device" error. The solution is to upgrade to OCFS 1.6. I've installed UEK and backed up the de

  • How to implement Distributed Transactions in ADF?

    Scenario: when selected rows and submitted action from UI, following happens 1) For the selected rows, information will get fetched from database and a message will get formed and will get posted in JMS queue 2) once step1 is successful, correspondin