/******************************************************************************* * Copyright (c) 2010 Neil Bartlett. * 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: * Neil Bartlett - initial API and implementation *******************************************************************************/ package bndtools.jareditor.internal; import org.eclipse.swt.SWT; import org.eclipse.swt.custom.SashForm; import org.eclipse.swt.graphics.Image; import org.eclipse.swt.layout.GridData; import org.eclipse.swt.layout.GridLayout; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; import org.eclipse.ui.forms.widgets.FormToolkit; import org.eclipse.ui.forms.widgets.ScrolledForm; import org.eclipse.ui.plugin.AbstractUIPlugin; public class JARContentPage extends FormPage { private Image titleImg; private JARContentTreePart contentTreePart; private JAREntryPart entryPart; private String[] selectedPath; public JARContentPage(FormEditor editor, String id, String title) { super(editor, id, title); } @Override protected void createFormContent(IManagedForm managedForm) { managedForm.setInput(getEditorInput()); FormToolkit toolkit = managedForm.getToolkit(); ScrolledForm form = managedForm.getForm(); form.setText("JAR File Viewer"); toolkit.decorateFormHeading(form.getForm()); titleImg = AbstractUIPlugin.imageDescriptorFromPlugin(PluginConstants.PLUGIN_ID, "/icons/jar_obj.gif").createImage(form.getDisplay()); form.setImage(titleImg); // CREATE CONTROLS Composite body = form.getBody(); SashForm sashForm = new SashForm(body, SWT.HORIZONTAL); Composite treePanel = toolkit.createComposite(sashForm); contentTreePart = new JARContentTreePart(treePanel, managedForm); managedForm.addPart(contentTreePart); Composite detailsPanel = toolkit.createComposite(sashForm); entryPart = new JAREntryPart(getEditor(), detailsPanel, toolkit); managedForm.addPart(entryPart); if (selectedPath != null) contentTreePart.setSelectedPath(selectedPath); // LAYOUT GridLayout layout; layout = new GridLayout(); layout.marginHeight = 0; layout.marginWidth = 0; body.setLayout(layout); sashForm.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); // treeSection.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); // detailsPanel.setLayoutData(new GridData(SWT.FILL, SWT.FILL, true, true)); } @Override public void dispose() { super.dispose(); titleImg.dispose(); } void setSelectedPath(String[] path) { this.selectedPath = path; if (contentTreePart != null) { contentTreePart.setSelectedPath(path); } } String[] getSelectedPath() { if (contentTreePart != null) { return contentTreePart.getSelectedPath(); } return null; } }