This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 195340

Summary: [70cat] Losing Focus doesn't set Folder Alias in Project Properties.
Product: projects Reporter: esmithbss <esmithbss>
Component: Generic Projects UIAssignee: Jesse Glick <jglick>
Status: RESOLVED INVALID    
Severity: normal    
Priority: P3    
Version: 7.0   
Hardware: All   
OS: All   
Issue Type: DEFECT Exception Reporter:

Description esmithbss 2011-02-11 15:18:55 UTC
Product Version = NetBeans IDE 7.0 Beta 2 (Build 201102052128)
Operating System = Windows XP version 5.1 running on x86
Java; VM; Vendor = 1.6.0_22
Runtime = Java HotSpot(TM) Client VM 17.1-b03

When adding a new source folder to a project using the Project Properties dialog, if you click on the "OK" button with pending changes and the changed field open, the field value is not saved.  It appears that the operation to persist the change is not tied to the Lose Focus event on the grid control.

To Reproduce.

1) Create a new Java Class Library project.
2) Add a new Folder to the project using the New->Other->Folder selection from the pop-up menu.
3) Open the Project Properties and add the new folder as a source folder.
4) Click on the Label column for the new folder in the Source Package Folders grid
5) Type in a new Label (do not move to another field).
6) Use the mouse to click "OK"

The new Label is not saved.

If you leave the field before clicking "OK", then changes are saved properly.
Comment 1 Jesse Glick 2011-02-14 15:39:25 UTC
This is just an aspect of Swing, or more precisely the particular L&F - changes to the table cell using its in-place editor are not applied until you leave the cell normally, e.g. TAB or ENTER or clicking on another cell - but not ESCAPE. You can see this in a simple demo:

import javax.swing.JOptionPane;
import javax.swing.JTable;
public class Test195340 {
    public static void main(String[] args) {
        JTable t = new JTable(new String[][] {{"src", "Sources"}, {"stuff", "Stuff"}}, new String[] {"Path", "Label"});
        JOptionPane.showMessageDialog(null, t);
        System.out.println(t.getValueAt(1, 1));
    }
}