blob: dfb9f62f91d0f7cc46e661aacd24012319f86376 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2008 IBM Corporation and others.
* 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:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.pde.internal.ua.ui.editor.ctxhelp.details;
import org.eclipse.jface.viewers.ISelection;
import org.eclipse.pde.internal.ua.core.ctxhelp.text.CtxHelpCommand;
import org.eclipse.pde.internal.ua.ui.editor.ctxhelp.CtxHelpInputContext;
import org.eclipse.pde.internal.ua.ui.editor.ctxhelp.CtxHelpTreeSection;
import org.eclipse.pde.internal.ui.editor.FormEntryAdapter;
import org.eclipse.pde.internal.ui.parts.FormEntry;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.forms.IFormPart;
/**
* Details section for command entries.
* @since 3.4
* @see CtxHelpAbstractDetails
* @see CtxHelpCommand
*/
public class CtxHelpCommandDetails extends CtxHelpAbstractDetails {
private CtxHelpCommand fCommand;
private FormEntry fLabelEntry;
private FormEntry fSerialEntry;
public CtxHelpCommandDetails(CtxHelpTreeSection masterSection) {
super(masterSection, CtxHelpInputContext.CONTEXT_ID);
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.ctxhelp.details.CtxHelpAbstractDetails#createFields(org.eclipse.swt.widgets.Composite)
*/
public void createFields(Composite parent) {
createLabel(parent, getManagedForm().getToolkit(), CtxHelpDetailsMessages.CtxHelpCommandDetails_labelDesc);
fLabelEntry = new FormEntry(parent, getManagedForm().getToolkit(), CtxHelpDetailsMessages.CtxHelpCommandDetails_labelText, SWT.NONE);
createSpace(parent);
createLabel(parent, getManagedForm().getToolkit(), CtxHelpDetailsMessages.CtxHelpCommandDetails_commandDesc);
fSerialEntry = new FormEntry(parent, getManagedForm().getToolkit(), CtxHelpDetailsMessages.CtxHelpCommandDetails_commandText, SWT.NONE);
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.ctxhelp.details.CtxHelpAbstractDetails#getDetailsTitle()
*/
protected String getDetailsTitle() {
return CtxHelpDetailsMessages.CtxHelpCommandDetails_title;
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.ctxhelp.details.CtxHelpAbstractDetails#getDetailsDescription()
*/
protected String getDetailsDescription() {
return null;
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.ctxhelp.details.CtxHelpAbstractDetails#hookListeners()
*/
public void hookListeners() {
fLabelEntry.setFormEntryListener(new FormEntryAdapter(this) {
public void textValueChanged(FormEntry entry) {
if (fCommand != null) {
fCommand.setLabel(fLabelEntry.getValue());
}
}
});
fSerialEntry.setFormEntryListener(new FormEntryAdapter(this) {
public void textValueChanged(FormEntry entry) { // Ensure data object is defined
if (fCommand != null) {
fCommand.setSerialization(fSerialEntry.getValue());
}
}
});
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.ctxhelp.details.CtxHelpAbstractDetails#updateFields()
*/
public void updateFields() {
if (fCommand != null) {
fLabelEntry.setValue(fCommand.getLabel(), true);
fLabelEntry.setEditable(isEditableElement());
fSerialEntry.setValue(fCommand.getSerialization(), true);
fSerialEntry.setEditable(isEditableElement());
}
}
/* (non-Javadoc)
* @see org.eclipse.ui.forms.AbstractFormPart#commit(boolean)
*/
public void commit(boolean onSave) {
super.commit(onSave);
// Only required for form entries
fLabelEntry.commit();
fSerialEntry.commit();
}
/* (non-Javadoc)
* @see org.eclipse.pde.internal.ui.editor.ctxhelp.details.CtxHelpAbstractDetails#selectionChanged(org.eclipse.ui.forms.IFormPart, org.eclipse.jface.viewers.ISelection)
*/
public void selectionChanged(IFormPart part, ISelection selection) {
Object object = getFirstSelectedObject(selection);
if (object instanceof CtxHelpCommand) {
fCommand = (CtxHelpCommand) object;
updateFields();
}
}
}