Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2006, 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.cheatsheet.simple.details;
 
 import java.util.Map;
 
 import  org.eclipse.swt.SWT;
 import  org.eclipse.swt.events.SelectionAdapter;
 import  org.eclipse.swt.events.SelectionEvent;
 import  org.eclipse.swt.graphics.Color;
 import  org.eclipse.swt.layout.GridData;
 import  org.eclipse.swt.widgets.Button;
 import  org.eclipse.swt.widgets.Composite;
 import  org.eclipse.swt.widgets.Label;
 import  org.eclipse.swt.widgets.Table;
 import  org.eclipse.swt.widgets.TableColumn;
 import  org.eclipse.swt.widgets.TableItem;
 
 public class SimpleCSCommandDetails extends CSAbstractSubDetails {
 
 	private ISimpleCSRun fRun;
 
 	private Table fCommandTable;
 
 
 
 	private Button fCommandBrowse;
 
 	private Button fCommandOptional;
 
 
 	private static final int F_COMMAND_INSERTION_INDEX = 1;

Parameters:
section
 
 	public SimpleCSCommandDetails(ICSMaster section) {
 		super(section.);
 		 = null;
 
 		 = null;
 		 = null;
 		 = null;
 		 = null;
 	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.pde.internal.ui.editor.cheatsheet.CSAbstractDetails#setData(java.lang.Object)
 	 */
 	public void setData(ISimpleCSRun object) {
 		// Set data
 		 = object;
 	}
 
 	/* (non-Javadoc)
 	 * @see org.eclipse.pde.internal.ui.editor.cheatsheet.simple.details.ISimpleCSDetails#createDetails(org.eclipse.swt.widgets.Composite)
 	 */
	public void createDetails(Composite parent) {
		int columnSpan = 3;
		Section commandSection = null;
		FormToolkit toolkit = getToolkit();
		Color foreground = toolkit.getColors().getColor(.);
		GridData data = null;
		Label label = null;
		// Create command section
		commandSection = toolkit.createSection(parent. | .);
		commandSection.clientVerticalSpacing = .;
		commandSection.setLayout(FormLayoutFactory.createClearGridLayout(false, 1));
		data = new GridData(GridData.FILL_HORIZONTAL);
		commandSection.setLayoutData(data);
		// Create container for command section		
		Composite commandSectionClient = toolkit.createComposite(commandSection);
		commandSectionClient.setLayout(FormLayoutFactory.createSectionClientGridLayout(falsecolumnSpan));
		// Element:  command
		// Label
		label = toolkit.createLabel(commandSectionClient., SWT.WRAP);
		label.setForeground(foreground);
		// Combo box
		.createControl(commandSectionClienttoolkit, SWT.READ_ONLY);
		data = new GridData(GridData.FILL_HORIZONTAL);
		.getControl().setLayoutData(data);
		// Insertion index is 0 for no command combo box entry
		// Always keep this entry as the first entry
		// Always insert new command keys obtained from other combo boxes in 
		// the position after the no command entry
		// Limit the combo box to the 11 most recent entries (includes no 
		// command entry)
		// Button
		// Element: command
		// Label for parameters
		label = toolkit.createLabel(commandSectionClient., SWT.WRAP);
		label.setForeground(foreground);
		data = new GridData(GridData.FILL_HORIZONTAL);
		data.horizontalSpan = columnSpan;
		label.setLayoutData(data);
		 = toolkit.createTable(commandSectionClient, SWT.SINGLE | SWT.BORDER | SWT.H_SCROLL | SWT.V_SCROLL | SWT.FULL_SELECTION);
		data = new GridData(GridData.FILL_HORIZONTAL);
		data.heightHint = 25;
		data.horizontalSpan = columnSpan;
		.setLayoutData(data);
		//fCommandTable.setHeaderVisible(true);
		.setLinesVisible(true);
		//fCommandTable.setForeground(foreground);
		TableColumn tableColumn1 = new TableColumn(, SWT.LEFT);
		TableColumn tableColumn2 = new TableColumn(, SWT.LEFT);
		// Attribute: required
		data = new GridData(GridData.FILL_HORIZONTAL);
		data.horizontalSpan = columnSpan;
		.setLayoutData(data);
		.setForeground(foreground);
		// Bind widgets
		toolkit.paintBordersFor(commandSectionClient);
		commandSection.setClient(commandSectionClient);
		// Mark as a details part to enable cut, copy, paste, etc.
		markDetailsPart(commandSection);
	}

Parameters:
label
	private void createCommandInfoDecoration() {
		// Command info decoration
		int bits = SWT.TOP | SWT.LEFT;
	}
	/* (non-Javadoc)
	 * @see org.eclipse.pde.internal.ui.editor.cheatsheet.simple.details.ISimpleCSDetails#hookListeners()
	 */
	public void hookListeners() {
		// Element: command
		.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				// Ensure data object is defined
				if ( == null) {
					return;
				}
				if (selection.equals() == false) {
					// Get the associated serialization stored as data against the 
					// command name
					String serialization = .getValue(selection);
					if (PDETextHelper.isDefined(serialization)) {
						// Create the new command in the model
						createCommandInModel(serialization);
						if (result != null) {
						}
					}
else {
					// The empty entry was selected
					// Delete the existing command
					.clearAll();
				}
				// Update the master section buttons
				// Update the optional command checkbox
			}
		});
		.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				// Ensure data object is defined
				if ( == null) {
					return;
				}
				// Open the command composer dialog using the input from the
				// currently selected command
				// Check result of dialog
				if (dialog.open() == .) {
					// Command composer exited successfully
					// Update accordingly
					// Update the master section buttons
					// Update the optional command checkbox
				}
			}
		});
		// Attribute: required
		.addSelectionListener(new SelectionAdapter() {
			public void widgetSelected(SelectionEvent e) {
				// Ensure data object is defined
				if ( == null) {
					return;
				}
				// Get the command
				// Ensure the command is defined
				if (commandObject == null) {
					return;
				}
				// Set required value in model
				boolean isRequired = (.getSelection() == false);
				commandObject.setRequired(isRequired);
			}
		});
	}
	/* (non-Javadoc)
	 * @see org.eclipse.pde.internal.ui.editor.cheatsheet.simple.details.ISimpleCSDetails#updateFields()
	 */
	public void updateFields() {
		// Ensure data object is defined
		if ( == null) {
			return;
		}
		// i.e. Action: class
		if (command == null) {
			// Since, this page is static the command combo and command table
			// must be reset
else {
			updateCommandCombo(commandfalse);
		}
		// Update the optional command checkbox
		// Update command UI enablement
	}

	private void updateUICommandOptional() {
		// Attribute: required
		if (commandObject == null) {
			.setSelection(false);
			.setEnabled(false);
else {
			boolean isOptional = (commandObject.getRequired() == false);
			.setSelection(isOptional);
		}
	}

Parameters:
runObject
Returns:
		// Ensure the run object is defined
		if (runObject == null) {
			return null;
		}
		// Get the executable
		ISimpleCSRunContainerObject executable = runObject.getExecutable();
		// Ensure executable is defined
		if (executable == null) {
			return null;
else if (executable.getType() != .) {
			// Not a command
			return null;
		}
		return (ISimpleCSCommandexecutable;
	}

	private void clearCommandUI() {
		// Clear the command combo
		// Clear the command table
		.clearAll();
	}

	private void updateCommandEnablement() {
		// Ensure data object is defined
		if ( == null) {
			return;
		}
		boolean editable = isEditableElement();
			// Preserve cheat sheet validity
			// Semantic Rule:  Cannot have a subitem and any of the following
			// together:  perform-when, command, action			
			if (item.hasSubItems()) {
				editable = false;
else {
			}
		}
		.setEnabled(true);
		.setEnabled(editable);
	}

Parameters:
serialization
	private void createCommandInModel(String serialization) {
		// Ensure data object is defined
		if ( == null) {
			return;
		}
		command.setSerialization(serialization);
		command.setRequired(false);
	}

Parameters:
result
createInModel
	private void updateCommandCombo(ParameterizedCommand resultboolean createInModel) {
		if (result == null) {
			return;
		}
		// Get serialization
		String serialization = result.serialize();
		// Get presentable command name
		String commandName = null;
		try {
			commandName = result.getCommand().getName();
catch (NotDefinedException e) {
			// Ignore, name will be undefined
		}
		// Get command ID
		String commandId = result.getId();
		if (PDETextHelper.isDefined(serialization) && PDETextHelper.isDefined(commandId)) {
			if (createInModel) {
				// Create the new command in the model
				createCommandInModel(serialization);
			}
			// Determine the presentable name to use in the combo box and the
			// key to store the serialization data against in the widget
			String nameToUse = null;
			if (PDETextHelper.isDefined(commandName)) {
				nameToUse = commandName;
else {
				nameToUse = commandId;
			}
			// Add new selection to the combo box if it is not already there
			// Associate the serialization with the command name
			// in the widget to retrieve for later use
			.putValue(nameToUseserialization);
			// Select it
			// Update the command table parameters
else {
			// No serialization, something bad happened
		}
	}

Parameters:
serialization
Returns:
		if (PDETextHelper.isDefined(serialization)) {
			if (service != null) {
				try {
					return service.deserialize(serialization);
catch (NotDefinedException e) {
catch (SerializationException e) {
				}
			}
		}
		return null;
	}

Parameters:
run
Returns:
		if (run == null) {
			return null;
		}
		if ((object != null) && (object.getType() == .)) {
			ISimpleCSCommand command = (ISimpleCSCommandobject;
		}
		return null;
	}

Parameters:
parameters
	private void updateCommandTable(Map parameters) {
		// Clear the table contents
		.clearAll();
		if ((parameters != null) && (parameters.isEmpty() == false)) {
			// Iterate over the keys in the map
			Iterator it = parameters.keySet().iterator();
			int rowCount = 0;
			while (it.hasNext()) {
				// Track number of keys / rows processed
				TableItem item = null;
				// Determine if there is an existing row already at that index
				if (rowCount < .getItemCount()) {
					// There is, reuse it
					item = .getItem(rowCount);
else {
					// There isn't, create a new one
					item = new TableItem(, SWT.NONE);
				}
				// Get key
				Object key = it.next();
				if (key instanceof String) {
					String keyString = (Stringkey;
					// If present, remove the fully qualified ID from the
					// paramater key
					// i.e. "org.eclipse.ui.perspective" becomes just 
					// "perspective" 
					int dotIndex = keyString.lastIndexOf('.');
					if ((dotIndex != -1) && (dotIndex != (keyString.length() - 1))) {
						keyString = keyString.substring(dotIndex + 1);
					}
					// Set parameter key in first column
					item.setText(0, keyString);
				}
				Object value = parameters.get(key);
				if (value instanceof String) {
					// Set parameter value in second column
					item.setText(1, (Stringvalue);
				}
				rowCount++;
			}
			// Pack the columns with the new data
			for (int i = 0; i < .getColumnCount(); i++) {
				TableColumn tableColumn = .getColumn(i);
				tableColumn.pack();
			}
		}
	}
	private static ICommandService getCommandService() {
		IWorkbench workbench = PlatformUI.getWorkbench();
		return (ICommandServiceworkbench.getAdapter(ICommandService.class);
	}
	}
		return service.createContextSnapshot(false);
	}

	private void updateCommandInfoDecoration(boolean showDecoration) {
		if (showDecoration) {
else {
		}
	}
	/* (non-Javadoc)
	 * @see org.eclipse.ui.forms.AbstractFormPart#commit(boolean)
	 */
	public void commit(boolean onSave) {
		super.commit(onSave);
		// NO-OP
		// No form entries
	}
New to GrepCode? Check out our FAQ X