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.
Summary: | Need atomic TopComponent replacement | ||
---|---|---|---|
Product: | platform | Reporter: | Petr Nejedly <pnejedly> |
Component: | Window System | Assignee: | David Simonek <dsimonek> |
Status: | VERIFIED FIXED | ||
Severity: | blocker | CC: | anebuzelsky, dsimonek, jglick, mentlicher, saubrecht |
Priority: | P2 | Keywords: | API, API_REVIEW_FAST |
Version: | 6.x | ||
Hardware: | All | ||
OS: | All | ||
Issue Type: | ENHANCEMENT | Exception Reporter: | |
Bug Depends on: | |||
Bug Blocks: | 20147, 94607 | ||
Attachments: |
patch diff of winsys API
patch diff of winsys implementation (core/windows) |
Description
Petr Nejedly
2007-02-06 11:22:12 UTC
It might be more powerful to support openAt(index) and getIndex() instead. It would allow implementing replacement and also some kind of "open-next-to-current" behavior proposed by Jesse at issue 94607 Will try for M9. Needed also for Save As. Sending to fast track API review. I will attach diff of carefully implemented solution with tests, api changes, everything. New API is two added methods in TopComponent: openAtPosition and getPosition. Guys, please review and comment. The biggest issue is probably that addition to TopComponent may be incompatible for unlucky modules, so the question is if we should put these methods to WindowManager instead of TopComponent. Created attachment 40210 [details]
patch diff of winsys API
Created attachment 40212 [details]
patch diff of winsys implementation (core/windows)
just a suggestion - i'd use getTabPosition() and openAtTabPosition() method names instead I thought about that too, thanks, agreed. Thanks guys for review, I updated the names according to Standa's suggestion. Implemented in main trunk: Checking in openide/windows/src/org/openide/windows/WindowManager.java; /cvs/openide/windows/src/org/openide/windows/WindowManager.java,v <-- WindowManager.java new revision: 1.16; previous revision: 1.15 done Checking in openide/windows/src/org/openide/windows/TopComponent.java; /cvs/openide/windows/src/org/openide/windows/TopComponent.java,v <-- TopComponent.java new revision: 1.21; previous revision: 1.20 done Checking in openide/windows/src/org/openide/windows/DummyWindowManager.java; /cvs/openide/windows/src/org/openide/windows/DummyWindowManager.java,v <-- DummyWindowManager.java new revision: 1.8; previous revision: 1.7 done Checking in core/windows/src/org/netbeans/core/windows/model/TopComponentSubModel.java; /cvs/core/windows/src/org/netbeans/core/windows/model/TopComponentSubModel.java,v <-- TopComponentSubModel.java new revision: 1.16; previous revision: 1.15 done Checking in core/windows/src/org/netbeans/core/windows/model/Model.java; /cvs/core/windows/src/org/netbeans/core/windows/model/Model.java,v <-- Model.java new revision: 1.19; previous revision: 1.18 done Checking in core/windows/src/org/netbeans/core/windows/model/DefaultModel.java; /cvs/core/windows/src/org/netbeans/core/windows/model/DefaultModel.java,v <-- DefaultModel.java new revision: 1.25; previous revision: 1.24 done Checking in core/windows/src/org/netbeans/core/windows/model/DefaultModeModel.java; /cvs/core/windows/src/org/netbeans/core/windows/model/DefaultModeModel.java,v <-- DefaultModeModel.java new revision: 1.13; previous revision: 1.12 done Checking in core/windows/src/org/netbeans/core/windows/model/ModeModel.java; /cvs/core/windows/src/org/netbeans/core/windows/model/ModeModel.java,v <-- ModeModel.java new revision: 1.12; previous revision: 1.11 done Checking in core/windows/src/org/netbeans/core/windows/Central.java; /cvs/core/windows/src/org/netbeans/core/windows/Central.java,v <-- Central.java new revision: 1.54; previous revision: 1.53 done Checking in core/windows/src/org/netbeans/core/windows/ModeImpl.java; /cvs/core/windows/src/org/netbeans/core/windows/ModeImpl.java,v <-- ModeImpl.java new revision: 1.27; previous revision: 1.26 done Checking in core/windows/src/org/netbeans/core/windows/WindowManagerImpl.java; /cvs/core/windows/src/org/netbeans/core/windows/WindowManagerImpl.java,v <-- WindowManagerImpl.java new revision: 1.60; previous revision: 1.59 done RCS file: /cvs/core/windows/test/unit/src/org/netbeans/core/windows/OpenAtTabPositionTest.java,v done Checking in core/windows/test/unit/src/org/netbeans/core/windows/OpenAtTabPositionTest.java; /cvs/core/windows/test/unit/src/org/netbeans/core/windows/OpenAtTabPositionTest.java,v <-- OpenAtTabPositionTest.java initial revision: 1.1 done Checking in openide/windows/apichanges.xml; /cvs/openide/windows/apichanges.xml,v <-- apichanges.xml new revision: 1.15; previous revision: 1.14 done Checking in openide/windows/manifest.mf; /cvs/openide/windows/manifest.mf,v <-- manifest.mf new revision: 1.15; previous revision: 1.14 done Checking in core/windows/nbproject/project.xml; /cvs/core/windows/nbproject/project.xml,v <-- project.xml new revision: 1.23; previous revision: 1.22 done Are there plans to use this for Alt-G, for example? Certainly not this API directly, better doable through issue 94607 (which needs to be updated to use this new API). Works great for me, I started using the API from openide/text, #94607. |