diff options
Diffstat (limited to 'plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web')
9 files changed, 161 insertions, 136 deletions
diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeAppData.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeAppData.java deleted file mode 100644 index 8f942c685d3..00000000000 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeAppData.java +++ /dev/null @@ -1,82 +0,0 @@ -/******************************************************************************* - * Copyright (c) 2011 Boeing. - * All rightsimport com.vaadin.Application; -import com.vaadin.service.ApplicationContext.TransactionListener; -he Eclipse Public License v1.0 - * which accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Contributors: - * Boeing - initial API and implementation - *******************************************************************************/ -package org.eclipse.osee.display.view.web; - -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.eclipse.osee.display.api.search.SearchNavigator; -import org.eclipse.osee.display.api.search.SearchPresenter; - -import com.vaadin.Application; -import com.vaadin.terminal.gwt.server.HttpServletRequestListener; - -/** - * @author Shawn F. Cook AppData contains thread-safe session-global data based - * on Vaadin demonstation: - * https://vaadin.com/book/-/page/advanced.global.html - */ -@SuppressWarnings("serial") -public class OseeAppData implements HttpServletRequestListener { - - protected final Application app; // For distinguishing between apps - protected static ThreadLocal<OseeAppData> instance = new ThreadLocal<OseeAppData>(); - - private final SearchNavigator navigator = createNavigator(); - private final SearchPresenter searchPresenter = createSearchPresenter(); - - public OseeAppData(Application app) { - this.app = app; - - // It's usable from now on in the current request - instance.set(this); - } - - protected SearchNavigator createNavigator() { - return new OseeNavigator(); - } - - protected SearchPresenter createSearchPresenter() { - return null; - } - - public static SearchNavigator getNavigator() { - return instance.get().navigator; - } - - public static SearchPresenter getSearchPresenter() { - return instance.get().searchPresenter; - } - - // @return the current application instance - public static OseeAppData getInstance() { - return instance.get(); - } - - // Set the current application instance - public static void setInstance(OseeAppData appdata) { - instance.set(appdata); - } - - @Override - public void onRequestStart(HttpServletRequest request, - HttpServletResponse response) { - OseeAppData.setInstance(this); - } - - @Override - public void onRequestEnd(HttpServletRequest request, - HttpServletResponse response) { - instance.remove(); - - } -} diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeFooter.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeFooter.java index a4ac05a9ecb..c60277f3c22 100644 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeFooter.java +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeFooter.java @@ -1,7 +1,5 @@ package org.eclipse.osee.display.view.web; -import com.vaadin.ui.Alignment; -import com.vaadin.ui.Label; import com.vaadin.ui.VerticalLayout; @SuppressWarnings("serial") @@ -19,13 +17,13 @@ public class OseeFooter extends VerticalLayout { return; } - Label ll = new Label("Add Navigation Links Here"); - ll.setWidth(null); - addComponent(ll); - setComponentAlignment(ll, Alignment.MIDDLE_CENTER); - - Label summary = new Label(getApplicationInfo()); - addComponent(summary); + // Label ll = new Label("Add Navigation Links Here"); + // ll.setWidth(null); + // addComponent(ll); + // setComponentAlignment(ll, Alignment.MIDDLE_CENTER); + // + // Label summary = new Label(getApplicationInfo()); + // addComponent(summary); populated = true; } diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeUiApplication.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeUiApplication.java new file mode 100644 index 00000000000..d54b3c32b2a --- /dev/null +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/OseeUiApplication.java @@ -0,0 +1,53 @@ +/******************************************************************************* + * Copyright (c) 2011 Boeing. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Boeing - initial API and implementation + *******************************************************************************/ +package org.eclipse.osee.display.view.web; + +import org.eclipse.osee.display.api.search.SearchNavigator; +import org.eclipse.osee.display.api.search.SearchPresenter; +import org.osgi.framework.Bundle; +import org.osgi.framework.FrameworkUtil; +import com.vaadin.Application; + +/** + * @author Shawn F. Cook + */ +public class OseeUiApplication extends Application { + + protected final SearchNavigator navigator = createNavigator(); + protected final SearchPresenter searchPresenter = createSearchPresenter(); + + @Override + public void init() { + setTheme("osee"); + } + + @Override + public String getVersion() { + Bundle bundle = FrameworkUtil.getBundle(this.getClass()); + return bundle.getVersion().toString(); + } + + protected SearchNavigator createNavigator() { + return new OseeNavigator(); + } + + protected SearchPresenter createSearchPresenter() { + return null; + } + + public SearchNavigator getNavigator() { + return navigator; + } + + public SearchPresenter getSearchPresenter() { + return searchPresenter; + } +} diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeArtifactNameLinkComponent.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeArtifactNameLinkComponent.java index b3136bf0569..c6ab3f7c793 100644 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeArtifactNameLinkComponent.java +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeArtifactNameLinkComponent.java @@ -14,7 +14,7 @@ import org.eclipse.osee.display.api.data.WebArtifact; import org.eclipse.osee.display.api.search.SearchNavigator; import org.eclipse.osee.display.api.search.SearchPresenter; import org.eclipse.osee.display.view.web.CssConstants; -import org.eclipse.osee.display.view.web.OseeAppData; +import org.eclipse.osee.display.view.web.OseeUiApplication; import com.vaadin.event.LayoutEvents.LayoutClickEvent; import com.vaadin.event.LayoutEvents.LayoutClickListener; import com.vaadin.ui.HorizontalLayout; @@ -26,13 +26,29 @@ import com.vaadin.ui.Link; @SuppressWarnings("serial") public class OseeArtifactNameLinkComponent extends HorizontalLayout { - private final SearchPresenter searchPresenter = OseeAppData.getSearchPresenter(); - private final SearchNavigator navigator = OseeAppData.getNavigator(); + private boolean populated = false; + private SearchPresenter searchPresenter = null; + private SearchNavigator navigator = null; public OseeArtifactNameLinkComponent(WebArtifact artifact) { this(artifact, CssConstants.OSEE_SEARCHRESULT_ARTNAME); } + @Override + public void attach() { + if (!populated) { + super.attach(); + try { + OseeUiApplication app = (OseeUiApplication) this.getApplication(); + searchPresenter = app.getSearchPresenter(); + navigator = app.getNavigator(); + } catch (Exception e) { + System.out.println("OseeArtifactNameLinkComponent.attach - CRITICAL ERROR: (OseeUiApplication) this.getApplication() threw an exception."); + } + } + populated = true; + } + public OseeArtifactNameLinkComponent(final WebArtifact artifact, String styleName) { super(); diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeRelationsComponent.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeRelationsComponent.java index 92053624bb3..018a7902a7b 100644 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeRelationsComponent.java +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeRelationsComponent.java @@ -15,7 +15,7 @@ import org.eclipse.osee.display.api.data.WebArtifact; import org.eclipse.osee.display.api.data.WebId; import org.eclipse.osee.display.api.search.SearchNavigator; import org.eclipse.osee.display.api.search.SearchPresenter; -import org.eclipse.osee.display.view.web.OseeAppData; +import org.eclipse.osee.display.view.web.OseeUiApplication; import com.vaadin.data.Property; import com.vaadin.data.Property.ValueChangeEvent; import com.vaadin.ui.HorizontalLayout; @@ -29,13 +29,30 @@ import com.vaadin.ui.VerticalLayout; @SuppressWarnings("serial") public class OseeRelationsComponent extends VerticalLayout implements RelationComponent { + private boolean populated = false; private final ListSelect relationTypesListSelect = new ListSelect("Relation Types:"); private final ListSelect relationsListSelect = new ListSelect("Relations:"); - SearchPresenter searchPresenter = OseeAppData.getSearchPresenter(); - SearchNavigator navigator = OseeAppData.getNavigator(); + private SearchPresenter searchPresenter = null; + private SearchNavigator navigator = null; private boolean lockRelTypesListener = false; private boolean lockRelsListener = false; + @Override + public void attach() { + if (!populated) { + try { + OseeUiApplication app = (OseeUiApplication) this.getApplication(); + searchPresenter = app.getSearchPresenter(); + navigator = app.getNavigator(); + } catch (Exception e) { + System.out.println("OseeRelationsComponent.attach - CRITICAL ERROR: (OseeUiApplication) this.getApplication() threw an exception."); + } + } + populated = true; + + createLayout(); + } + private void createLayout() { removeAllComponents(); @@ -64,8 +81,14 @@ public class OseeRelationsComponent extends VerticalLayout implements RelationCo @Override public void valueChange(ValueChangeEvent event) { if (!lockRelTypesListener) { - WebId relationType = (WebId) relationTypesListSelect.getValue(); - searchPresenter.selectRelationType(relationType, OseeRelationsComponent.this); + try { + WebId relationType = (WebId) relationTypesListSelect.getValue(); + if (relationType != null) { + searchPresenter.selectRelationType(relationType, OseeRelationsComponent.this); + } + } catch (Exception e) { + System.out.println("OseeRelationsComponent.createLayout - CRITICAL ERROR: (WebArtifact) relationsListSelect.getValue() threw an exception."); + } } } }); @@ -74,8 +97,14 @@ public class OseeRelationsComponent extends VerticalLayout implements RelationCo @Override public void valueChange(ValueChangeEvent event) { if (!lockRelsListener) { - WebArtifact artifact = (WebArtifact) relationsListSelect.getValue(); - searchPresenter.selectArtifact(artifact, navigator); + try { + WebArtifact artifact = (WebArtifact) relationsListSelect.getValue(); + if (artifact != null) { + searchPresenter.selectArtifact(artifact, navigator); + } + } catch (Exception e) { + System.out.println("OseeRelationsComponent.createLayout - CRITICAL ERROR: (WebArtifact) relationsListSelect.getValue() threw an exception."); + } } } }); @@ -140,5 +169,6 @@ public class OseeRelationsComponent extends VerticalLayout implements RelationCo @Override public void setErrorMessage(String message) { + //TODO: } } diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeSearchResultsListComponent.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeSearchResultsListComponent.java index 8a1d3e1f073..6f8a78b5354 100644 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeSearchResultsListComponent.java +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/components/OseeSearchResultsListComponent.java @@ -17,6 +17,7 @@ import java.util.Iterator; import org.eclipse.osee.display.api.components.SearchResultComponent; import org.eclipse.osee.display.api.components.SearchResultsListComponent; import org.eclipse.osee.display.view.web.CssConstants; +import com.vaadin.Application; import com.vaadin.ui.Component; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Label; @@ -31,6 +32,12 @@ public class OseeSearchResultsListComponent extends VerticalLayout implements Se VerticalLayout bottomSpacer = new VerticalLayout(); HorizontalLayout manySearchResultsHorizLayout = new HorizontalLayout(); + @Override + public void attach() { + super.attach(); + Application app = this.getApplication(); + } + public OseeSearchResultsListComponent() { addComponent(manySearchResultsHorizLayout); Label spacer2 = new Label(""); diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeArtifactView.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeArtifactView.java index 4bf072f5cbd..d096e8a2df3 100644 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeArtifactView.java +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeArtifactView.java @@ -13,7 +13,7 @@ package org.eclipse.osee.display.view.web.search; import org.eclipse.osee.display.api.components.ArtifactHeaderComponent; import org.eclipse.osee.display.api.data.WebArtifact; import org.eclipse.osee.display.api.search.SearchPresenter; -import org.eclipse.osee.display.view.web.OseeAppData; +import org.eclipse.osee.display.view.web.OseeUiApplication; import org.eclipse.osee.display.view.web.components.OseeArtifactNameLinkComponent; import org.eclipse.osee.display.view.web.components.OseeAttributeComponent; import org.eclipse.osee.display.view.web.components.OseeBreadcrumbComponent; @@ -32,14 +32,20 @@ import com.vaadin.ui.VerticalLayout; @SuppressWarnings("serial") public class OseeArtifactView extends CustomComponent implements Navigator.View, ArtifactHeaderComponent { - protected SearchPresenter searchPresenter = OseeAppData.getSearchPresenter(); + private boolean populated = false; + protected SearchPresenter searchPresenter = null; protected OseeSearchHeaderComponent oseeSearchHeader = getOseeSearchHeader(); protected OseeRelationsComponent relationsComp = new OseeRelationsComponent(); protected OseeAttributeComponent attributeComp = new OseeAttributeComponent(); private final OseeBreadcrumbComponent breadcrumbComp = new OseeBreadcrumbComponent(null); private WebArtifact artifact; - private void initLayout() { + @Override + public void attach() { + //TODO: remove? + } + + private void createLayout() { setSizeFull(); HorizontalLayout leftMarginAndBody = new HorizontalLayout(); @@ -85,12 +91,25 @@ public class OseeArtifactView extends CustomComponent implements Navigator.View, @Override public void init(Navigator navigator, Application application) { - initLayout(); + //Do nothing. } @Override public void navigateTo(String requestedDataId) { - searchPresenter.initArtifactPage(requestedDataId, oseeSearchHeader, this, relationsComp, attributeComp); + if (!populated) { + try { + OseeUiApplication app = (OseeUiApplication) this.getApplication(); + searchPresenter = app.getSearchPresenter(); + } catch (Exception e) { + System.out.println("OseeArtifactView.attach - CRITICAL ERROR: (OseeUiApplication) this.getApplication() threw an exception."); + } + } + populated = true; + + if (searchPresenter != null) { + searchPresenter.initArtifactPage(requestedDataId, oseeSearchHeader, this, relationsComp, attributeComp); + } + createLayout(); } @Override @@ -105,13 +124,13 @@ public class OseeArtifactView extends CustomComponent implements Navigator.View, @Override public void clearAll() { this.artifact = null; - initLayout(); + createLayout(); } @Override public void setArtifact(WebArtifact artifact) { this.artifact = artifact; - initLayout(); + createLayout(); } @Override diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchHomeView.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchHomeView.java index 145eba8e0c3..64a32405dd9 100644 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchHomeView.java +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchHomeView.java @@ -1,5 +1,5 @@ /******************************************************************************* - * Copyright (c) 2004, 2007 Boeing. + * Copyright (c) 2011 Boeing. * All rights reserved. This program and the accompanying materials * are made available under the terms of the Eclipse Public License v1.0 * which accompanies this distribution, and is available at @@ -22,16 +22,9 @@ import com.vaadin.ui.VerticalLayout; @SuppressWarnings("serial") public class OseeSearchHomeView extends CustomComponent implements Navigator.View { - protected OseeSearchHeaderComponent oseeSearchHeader; - - public OseeSearchHomeView() { - oseeSearchHeader = getOseeSearchHeader(); - } - - @Override - public void init(Navigator navigator, Application application) { - initComponents(); + protected final OseeSearchHeaderComponent oseeSearchHeader = getOseeSearchHeader(); + protected void createLayout() { this.setSizeFull(); final VerticalLayout vertLayout = new VerticalLayout(); @@ -43,10 +36,6 @@ public class OseeSearchHomeView extends CustomComponent implements Navigator.Vie setCompositionRoot(vertLayout); } - protected void initComponents() { - //Do nothing - } - protected OseeSearchHeaderComponent getOseeSearchHeader() { return new OseeSearchHeaderComponent(); } @@ -60,4 +49,9 @@ public class OseeSearchHomeView extends CustomComponent implements Navigator.Vie public String getWarningForNavigatingFrom() { return null; } + + @Override + public void init(Navigator navigator, Application application) { + //Do nothing. + } } diff --git a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchResultsView.java b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchResultsView.java index 06d5947139d..807604b3fc4 100644 --- a/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchResultsView.java +++ b/plugins/org.eclipse.osee.display.view.web/src/org/eclipse/osee/display/view/web/search/OseeSearchResultsView.java @@ -25,15 +25,10 @@ import com.vaadin.ui.VerticalLayout; @SuppressWarnings("serial") public class OseeSearchResultsView extends CustomComponent implements Navigator.View { - protected OseeSearchHeaderComponent oseeSearchHeader; - protected OseeSearchResultsListComponent searchResultsListComponent; + protected final OseeSearchHeaderComponent oseeSearchHeader = getOseeSearchHeader(); + protected final OseeSearchResultsListComponent searchResultsListComponent = new OseeSearchResultsListComponent(); - public OseeSearchResultsView() { - oseeSearchHeader = getOseeSearchHeader(); - searchResultsListComponent = new OseeSearchResultsListComponent(); - } - - private void initLayout() { + protected void createLayout() { setSizeFull(); HorizontalLayout leftMarginAndBody = new HorizontalLayout(); @@ -65,8 +60,7 @@ public class OseeSearchResultsView extends CustomComponent implements Navigator. @Override public void init(Navigator navigator, Application application) { - initComponents(); - initLayout(); + //Do nothing. } protected OseeSearchHeaderComponent getOseeSearchHeader() { @@ -83,8 +77,4 @@ public class OseeSearchResultsView extends CustomComponent implements Navigator. return null; } - protected void initComponents() { - //Do nothing - } - } |