/******************************************************************************* * Copyright (c) 2007 Jeff Mesnil * 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 *******************************************************************************/ package net.jmesnil.jmx.ui.internal.editors; import net.jmesnil.jmx.resources.MBeanInfoWrapper; import net.jmesnil.jmx.resources.MBeanOperationInfoWrapper; import net.jmesnil.jmx.ui.internal.Messages; import org.eclipse.core.runtime.Assert; import org.eclipse.swt.widgets.Composite; import org.eclipse.ui.forms.DetailsPart; import org.eclipse.ui.forms.IDetailsPage; import org.eclipse.ui.forms.IDetailsPageProvider; import org.eclipse.ui.forms.IFormPart; import org.eclipse.ui.forms.IManagedForm; import org.eclipse.ui.forms.MasterDetailsBlock; import org.eclipse.ui.forms.editor.FormEditor; import org.eclipse.ui.forms.editor.FormPage; import org.eclipse.ui.forms.widgets.ScrolledForm; public class OperationsPage extends FormPage { static final String ID = "operations"; //$NON-NLS-1$ private OperationsBLock block; private MBeanInfoWrapper wrapper; public class OperationsBLock extends MasterDetailsBlock implements IDetailsPageProvider { private IFormPart masterSection; private IDetailsPage operationDetails; public OperationsBLock() { } protected void createMasterPart(IManagedForm managedForm, Composite parent) { masterSection = new OperationsSection(wrapper, managedForm, parent); managedForm.addPart(masterSection); } protected void registerPages(DetailsPart detailsPart) { operationDetails = new OperationDetails(masterSection); detailsPart.setPageLimit(10); detailsPart.setPageProvider(this); detailsPart.registerPage(MBeanOperationInfoWrapper.class, operationDetails); } protected void createToolBarActions(IManagedForm managedForm) { ActionUtils.createLayoutActions(managedForm, sashForm); } public Object getPageKey(Object object) { return object; } public IDetailsPage getPage(Object key) { if (key instanceof MBeanOperationInfoWrapper) { return operationDetails; } return null; } } public OperationsPage(FormEditor editor) { super(editor, ID, Messages.OperationsPage_title); MBeanEditorInput input = (MBeanEditorInput) editor.getEditorInput(); this.wrapper = input.getWrapper(); block = new OperationsBLock(); } protected void createFormContent(IManagedForm managedForm) { ScrolledForm form = managedForm.getForm(); form.getForm().setSeparatorVisible(true); form.getForm().setText(wrapper.getObjectName().toString()); block.createContent(managedForm); } @Override public boolean selectReveal(Object object) { Assert.isNotNull(object); if (object instanceof MBeanOperationInfoWrapper) { MBeanOperationInfoWrapper opWrapper = (MBeanOperationInfoWrapper) object; getEditor().setActivePage(ID); return block.masterSection.setFormInput(opWrapper); } return super.selectReveal(object); } }