if(lproj != null && lproj.getFileExtension().equals("lproj")) {
if(lproj != null && "lprog".equals(lproj.getFileExtension())) {
		public Object[] getElements(Object parent) {			IWOLipsResource wolipsResource = null;			// MS: If we add the dependency it is a circular dependency, so that			// sucks ... We'll just do it Reflection-Style.			if (parent != null && parent.getClass().getName().equals("org.objectstyle.wolips.components.input.ComponentEditorFileEditorInput")) {				try {					parent = parent.getClass().getMethod("getFile", null).invoke(parent, null);				} catch (Exception e) {					e.printStackTrace();				}				// System.out.println("ViewContentProvider.getElements: " +				// parent);			} else if (parent != null && parent.getClass().getName().startsWith("org.eclipse.wst")) {				// MS: Total hack ... HTML editor returns its element as a				// TextImpl. I'm not how to get back to the IResource from				// that. It just so happens that there's always a previous				// selection that is something we CAN use				parent = lastParent;				// try {				// Object structuredDocRegion =				// parent.getClass().getMethod("getFirstStructuredDocumentRegion",				// null).invoke(parent, null);				// Object structuredDoc =				// structuredDocRegion.getClass().getMethod("getParentDocument",				// null).invoke(structuredDocRegion, null);				// System.out.println("ViewContentProvider.getElements: " +				// structuredDoc);				// }				// catch (Exception e) {				// e.printStackTrace();				// }			}			if (parent instanceof IFileEditorInput) {				IFileEditorInput input = (IFileEditorInput) parent;				try {					// HACK AK: we should use sth more generic here					if ("java".equals(input.getFile().getFileExtension())) {						parent = JavaCore.createCompilationUnitFrom(input.getFile());					}				} catch (Exception ex) {					UIPlugin.getDefault().log(ex);				}			}			if (parent instanceof IMember) {				parent = ((IMember) parent).getCompilationUnit();			}			if (parent instanceof IResource) {				wolipsResource = WOLipsCore.getWOLipsModel().getWOLipsResource((IResource) parent);				// getViewer().setInput(wolipsResource);			} else if (parent instanceof ICompilationUnit) {				wolipsResource = WOLipsCore.getWOLipsModel().getWOLipsCompilationUnit((ICompilationUnit) parent);			}			List result = new LinkedList();			if (wolipsResource != null) {				try {					List list = (wolipsResource).getRelatedResources();					result.addAll(list);				} catch (Exception e) {					UIPlugin.getDefault().log(e);				}			} else if(parent != null && parent instanceof IResource) {				try {					final IResource resource = (IResource)parent;					final List list = new ArrayList();					IContainer lproj = resource.getParent();					if(lproj != null && lproj.getFileExtension().equals("lproj")) {						IContainer p = lproj.getParent();						p.accept(new IResourceProxyVisitor() {							public boolean visit(IResourceProxy proxy) throws CoreException {								if(proxy.getName().endsWith(".lproj")) {									IContainer f = (IContainer) proxy.requestResource();									IResource m = f.findMember(resource.getName());									if(m != null) {										list.add(m);									}								}								return true;							}													}, IContainer.DEPTH_ONE);						result.addAll(list);					}				} catch (Exception e) {					UIPlugin.getDefault().log(e);				}			}			lastParent = parent;			Object[] resultList = result.toArray();			// labelProvider needs the element list to check for duplicate			// filenames			labelProvider.setResultList(resultList);			return resultList;		}