diff options
author | Darin Wright | 2005-02-09 17:32:56 +0000 |
---|---|---|
committer | Darin Wright | 2005-02-09 17:32:56 +0000 |
commit | 83e4b6dd9c22b45d48ceb0e6e5cb6bc89ef3a622 (patch) | |
tree | 0ec585ed18f0af5ef01ab38b5650fa144c73e5c5 /org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java | |
parent | d7a08b6c24aa2141579dc137e2fc0ecdd276236a (diff) | |
download | eclipse.platform.debug-83e4b6dd9c22b45d48ceb0e6e5cb6bc89ef3a622.tar.gz eclipse.platform.debug-83e4b6dd9c22b45d48ceb0e6e5cb6bc89ef3a622.tar.xz eclipse.platform.debug-83e4b6dd9c22b45d48ceb0e6e5cb6bc89ef3a622.zip |
Bug 84799 - Implement Memory View and renderings with new rendering APIs
Diffstat (limited to 'org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java')
-rw-r--r-- | org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java | 151 |
1 files changed, 151 insertions, 0 deletions
diff --git a/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java new file mode 100644 index 000000000..a57b8a1cb --- /dev/null +++ b/org.eclipse.debug.ui/ui/org/eclipse/debug/internal/ui/views/memory/renderings/GoToAddressDialog.java @@ -0,0 +1,151 @@ +/******************************************************************************* + * Copyright (c) 2004 IBM Corporation and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Common Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/cpl-v10.html + * + * Contributors: + * IBM Corporation - initial API and implementation + *******************************************************************************/ + +package org.eclipse.debug.internal.ui.views.memory.renderings; + +import java.util.Vector; +import org.eclipse.debug.internal.ui.DebugUIMessages; +import org.eclipse.debug.ui.IDebugUIConstants; +import org.eclipse.jface.dialogs.Dialog; +import org.eclipse.jface.dialogs.IDialogConstants; +import org.eclipse.swt.SWT; +import org.eclipse.swt.events.ModifyEvent; +import org.eclipse.swt.events.ModifyListener; +import org.eclipse.swt.layout.GridData; +import org.eclipse.swt.layout.GridLayout; +import org.eclipse.swt.widgets.Combo; +import org.eclipse.swt.widgets.Composite; +import org.eclipse.swt.widgets.Control; +import org.eclipse.swt.widgets.Label; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.help.WorkbenchHelp; + +/** + * @since 3.0 + */ + +public class GoToAddressDialog extends Dialog implements ModifyListener{ + + private static Vector history = new Vector(); + private Combo expressionInput; + private String expression; + + + private static final String PREFIX = "GoToAddressDialog."; //$NON-NLS-1$ + private static final String GO_TO_ADDRESS = PREFIX + "GoToAddress"; //$NON-NLS-1$ + private static final String ADDRESS = PREFIX + "Address"; //$NON-NLS-1$ + + + /** + * @param parentShell + */ + public GoToAddressDialog(Shell parentShell) { + super(parentShell); + WorkbenchHelp.setHelp(parentShell, IDebugUIConstants.PLUGIN_ID + ".GoToAddressDialog_context"); //$NON-NLS-1$ + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.Dialog#createDialogArea(org.eclipse.swt.widgets.Composite) + */ + protected Control createDialogArea(Composite parent) { + + parent.setLayout(new GridLayout()); + GridData spec2= new GridData(); + spec2.grabExcessVerticalSpace= true; + spec2.grabExcessHorizontalSpace= true; + spec2.horizontalAlignment= GridData.FILL; + spec2.verticalAlignment= GridData.CENTER; + parent.setLayoutData(spec2); + + Label textLabel = new Label(parent, SWT.NONE); + textLabel.setText(DebugUIMessages.getString(ADDRESS)); + GridData textLayout = new GridData(); + textLayout.widthHint = 280; + textLabel.setLayoutData(textLayout); + + expressionInput = new Combo(parent, SWT.BORDER); + GridData spec= new GridData(); + spec.grabExcessVerticalSpace= false; + spec.grabExcessHorizontalSpace= true; + spec.horizontalAlignment= GridData.FILL; + spec.verticalAlignment= GridData.BEGINNING; + spec.heightHint = 50; + expressionInput.setLayoutData(spec); + + // add history + String[] historyExpression = (String[])history.toArray(new String[history.size()]); + for (int i=0; i<historyExpression.length; i++) + { + expressionInput.add(historyExpression[i]); + } + + expressionInput.addModifyListener(this); + + return parent; + } + /* (non-Javadoc) + * @see org.eclipse.jface.window.Window#configureShell(org.eclipse.swt.widgets.Shell) + */ + protected void configureShell(Shell newShell) { + super.configureShell(newShell); + + newShell.setText(DebugUIMessages.getString(GO_TO_ADDRESS)); + } + + public String getExpression() + { + return expression; + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.Dialog#okPressed() + */ + protected void okPressed() { + + expression = expressionInput.getText(); + + // add to history list + if (!history.contains(expression)) + history.insertElementAt(expression, 0); + + super.okPressed(); + } + + /* (non-Javadoc) + * @see org.eclipse.swt.events.ModifyListener#modifyText(org.eclipse.swt.events.ModifyEvent) + */ + public void modifyText(ModifyEvent e) { + + String input = expressionInput.getText(); + + if (input == null || input.equals("")) //$NON-NLS-1$ + { + getButton(IDialogConstants.OK_ID).setEnabled(false); + } + else + { + getButton(IDialogConstants.OK_ID).setEnabled(true); + } + + } + + /* (non-Javadoc) + * @see org.eclipse.jface.dialogs.Dialog#createButtonBar(org.eclipse.swt.widgets.Composite) + */ + protected Control createButtonBar(Composite parent) { + + Control ret = super.createButtonBar(parent); + getButton(IDialogConstants.OK_ID).setEnabled(false); + + return ret; + } + +} |