Bug 121370 ?eirst open BIRT, property editor can not be opened.
eirst open BIRT , create a new workspace, property editor can not be opened, system throws exception. Steps: 1.Install eclipse and birt 2.Open the eclipse 3.Create a new workspace Actual Results: 1.Propertye editor can not be opened, system throws exception java.lang.NullPointerException at org.eclipse.birt.report.model.api.GroupElementHandle.<init>(GroupElementHandle.java:86) at org.eclipse.birt.report.designer.util.DEUtil.getGroupElementHandle(DEUtil.java:1562) at org.eclipse.birt.report.designer.ui.views.attributes.AttributeView.addActions(AttributeView.java:334) at org.eclipse.birt.report.designer.ui.views.attributes.AttributeView.createPartControl(AttributeView.java:276) at org.eclipse.ui.internal.PartPane$2.run(PartPane.java:137) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.ui.internal.PartPane.createChildControl(PartPane.java:133) at org.eclipse.ui.internal.ViewPane.createChildControl(ViewPane.java:135) at org.eclipse.ui.internal.ViewFactory$1.run(ViewFactory.java:351) at org.eclipse.core.internal.runtime.InternalPlatform.run(InternalPlatform.java:616) at org.eclipse.core.runtime.Platform.run(Platform.java:747) at org.eclipse.ui.internal.ViewFactory.busyRestoreView(ViewFactory.java:273) at org.eclipse.ui.internal.ViewFactory$2.run(ViewFactory.java:530) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.ViewFactory.restoreView(ViewFactory.java:528) at org.eclipse.ui.internal.ViewFactory$ViewReference.getPart(ViewFactory.java:102) at org.eclipse.ui.internal.WorkbenchPage$1.propertyChange(WorkbenchPage.java:132) at org.eclipse.ui.internal.LayoutPart.setVisible(LayoutPart.java:268) at org.eclipse.ui.internal.PartPane.setVisible(PartPane.java:317) at org.eclipse.ui.internal.ViewPane.setVisible(ViewPane.java:568) at org.eclipse.ui.internal.presentations.PresentablePart.setVisible(PresentablePart.java:122) at org.eclipse.ui.internal.presentations.DefaultPartPresentation.selectPart(DefaultPartPresentation.java:1116) at org.eclipse.ui.internal.PartStack.refreshPresentationSelection(PartStack.java:946) at org.eclipse.ui.internal.PartStack.setSelection(PartStack.java:921) at org.eclipse.ui.internal.PartStack.showPart(PartStack.java:1020) at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:383) at org.eclipse.ui.internal.PartStack.createControl(PartStack.java:367) at org.eclipse.ui.internal.PartSashContainer.createControl(PartSashContainer.java:432) at org.eclipse.ui.internal.PerspectiveHelper.activate(PerspectiveHelper.java:155) at org.eclipse.ui.internal.Perspective.onActivate(Perspective.java:732) at org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:2818) at org.eclipse.ui.internal.WorkbenchPage.busySetPerspective(WorkbenchPage.java:743) at org.eclipse.ui.internal.WorkbenchPage.access$8(WorkbenchPage.java:728) at org.eclipse.ui.internal.WorkbenchPage$12.run(WorkbenchPage.java:2961) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:69) at org.eclipse.ui.internal.WorkbenchPage.setPerspective(WorkbenchPage.java:2959) at org.eclipse.ui.internal.ChangeToPerspectiveMenu.run(ChangeToPerspectiveMenu.java:87) at org.eclipse.ui.actions.PerspectiveMenu.run(PerspectiveMenu.java:303) at org.eclipse.ui.actions.PerspectiveMenu$3.widgetSelected(PerspectiveMenu.java:119) at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:89) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:82) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:796) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:2772) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:2431) at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:1377) at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1348) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:254) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:141) at org.eclipse.ui.internal.ide.IDEApplication.run(IDEApplication.java:96) at org.eclipse.core.internal.runtime.PlatformActivator$1.run(PlatformActivator.java:335) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:273) at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:129) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:324) at org.eclipse.core.launcher.Main.basicRun(Main.java:185) at org.eclipse.core.launcher.Main.run(Main.java:704) at org.eclipse.core.launcher.Main.main(Main.java:688) Expected Results: 1.Property editor can be opened.
model/org.eclipse.birt.report.model/src/org/eclipse/birt/report/model/api/GroupElementHandle.java
for ( Iterator iter = elements.iterator( ); iter.hasNext( ); )
		{
			DesignElementHandle elementHandle = (DesignElementHandle) iter
					.next( );
			if ( elementHandle.getElement( ).hasLocalPropertyValues( ) )
				return true;
		}
		return false;
	}
	/**
	 * Checks whether a property is read-only in the property sheet. The visible
	 * property is read-only in all <code>elements</code>.
	 * 
	 * @param propName
	 *            the property name
	 * @return <code>true</code> if it is read-only. Otherwise
	 *         <code>false</code>.
	 */
	protected boolean isPropertyReadOnly( String propName )
	{
		boolean isReadOnly = false;
		for ( int i = 0; i < elements.size( ); i++ )
		{
			PropertyHandle propertyHandle = ( (DesignElementHandle) elements
					.get( i ) ).getPropertyHandle( propName );
			
			
			if ( propertyHandle != null && propertyHandle.isReadOnly( )
					|| propertyHandle == null )
			{