Bug 540297 - IWorkbenchPage.findView finds view from another perspective

Whenever a view is open in an inactive perspective, if that view is
opened and then closed in the active perspective,
IWorkbenchPage.findView(String) is able to find the view. This should
not be the case.

The undesired behavior is due to IWorkbenchPage.hideView() setting the
"to be rendered flag" on a placeholder which is not asked for the flag
during IWorkbenchPage.findView().

This change builds on the fix for bug 466230 by also asking the
placeholder reported by EModelService.findPlaceholderFor(). Only if both
the current shared reference (asked with fix for bug 466230) and that
placeholder are to be rendered, will the view be used as a result of
IWorkbenchPage.findView().

This change also adds a test which shows bad behavior when a view is
open in another perspective of a workbench window. The test will open a
test view in one of two test perspectives in resp. one of two test
windows. The test then validates the output of IWorkbenchPage.findView()
to ensure it returns non-null only if the view is actually open in that
page.

Change-Id: Ia0151e9a3ade70d541af41963b275f7ca83da8a9
Signed-off-by: Simeon Andreev <simeon.danailov.andreev@gmail.com>
Signed-off-by: Andrey Loskutov <loskutov@gmx.de>
4 files changed
tree: 38ddbdb31e3561732e52947ddb69ec3dba545d6c
  1. .mvn/
  2. bundles/
  3. examples/
  4. features/
  5. releng/
  6. tests/
  7. .gitignore
  8. CONTRIBUTING.md
  9. pom.xml
  10. README.md
README.md

Contributing to Eclipse Platform UI project

Thanks for your interest in this project.

Project description:

Platform UI provides the basic building blocks for user interfaces built with Eclipse.

Some of these form the Eclipse Rich Client Platform (RCP) and can be used for arbitrary rich client applications, while others are specific to the Eclipse IDE. The Platform UI codebase is built on top of the Eclipse Standard Widget Toolkit (SWT), which is developed as an independent project.

Website: http://www.eclipse.org/platform/ui/

For more information, refer to the Platform UI wiki page.

How to contribute:

Contributions to Platform UI are most welcome. There are many ways to contribute, from entering high quality bug reports, to contributing code or documentation changes. For a complete guide, see the Platform UI - How to contribute wiki page page on the team wiki.

Test dependencies

Several test plug-ins have a dependency to the Mockito and Hamcrest library. Please install them from the Orbit Download page

Currently the following versions are required:

  • org.hamcrest;bundle-version=“1.1.0”,
  • org.mockito;bundle-version=“1.8.4”,

How to build on the command line

You need Maven 3.3.1 installed. After this you can run the build via the following command:

mvn clean verify -Pbuild-individual-bundles

Developer resources:

Information regarding source code management, builds, coding standards, and more.

Contributor License Agreement:

Before your contribution can be accepted by the project, you need to create and electronically sign the Eclipse Foundation Contributor License Agreement (CLA).

Search for bugs:

This project uses Bugzilla to track ongoing development and issues.

Create a new bug:

Be sure to search for existing bugs before you create another one. Remember that contributions are always welcome!

Contact:

Contact the project developers via the project's “dev” list.

License

[Eclipse Public License (EPL) v1.0][4]