/* * (C) Copyright 2006-2008 Nuxeo SA (http://nuxeo.com/) and others. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * Contributors: * bstefanescu * * $Id$ */ package org.nuxeo.ecm.platform.gwt.client.ui.editor; import org.nuxeo.ecm.platform.gwt.client.model.Document; import org.nuxeo.ecm.platform.gwt.client.ui.SmartView; import org.nuxeo.ecm.platform.gwt.client.ui.View; import org.nuxeo.ecm.platform.gwt.client.ui.view.MultiPageViewManager; import com.smartgwt.client.widgets.Canvas; import com.smartgwt.client.widgets.layout.VLayout; import com.smartgwt.client.widgets.tab.TabSet; /** * @author <a href="mailto:bs@nuxeo.com">Bogdan Stefanescu</a> * */ public class MultiPageDocView extends SmartView { protected MultiPageViewManager mgr; protected DocumentHeader header; public MultiPageDocView() { super ("mpe"); this.mgr = new MultiPageViewManager(new TabsContainer()); } public Document getDocument() { return (Document)input; } @Override protected void inputChanged() { site.updateTitle(); refresh(); } @Override public void refresh() { header.update(getDocument()); mgr.open(input); } // @Override // public String getIcon() { // return Framework.getSkinPath("images/document.png"); // } @Override public String getTitle() { return getDocument().getTitle(); } public void addPage(String key, View view) { mgr.addView(key, view); } @Override protected Canvas createWidget() { VLayout panel = new VLayout(); Canvas header = createHeader(); if (header != null) { panel.addMember(header); } TabSet tabs = ((TabsContainer)mgr.getContainer()).getWidget(); tabs.setHeight100(); panel.addMember(tabs); return panel; } public Canvas createHeader() { if (header == null) { header = new DocumentHeader(this); } return header; } }