001: /*******************************************************************************
002: * Copyright (c) 2004, 2005 IBM Corporation and others.
003: * All rights reserved. This program and the accompanying materials
004: * are made available under the terms of the Eclipse Public License v1.0
005: * which accompanies this distribution, and is available at
006: * http://www.eclipse.org/legal/epl-v10.html
007: *
008: * Contributors:
009: * IBM Corporation - initial API and implementation
010: *******************************************************************************/package org.eclipse.ui.examples.components.views.comparisons;
011:
012: import org.eclipse.core.runtime.IStatus;
013: import org.eclipse.swt.SWT;
014: import org.eclipse.swt.events.SelectionAdapter;
015: import org.eclipse.swt.events.SelectionEvent;
016: import org.eclipse.swt.layout.GridData;
017: import org.eclipse.swt.layout.GridLayout;
018: import org.eclipse.swt.widgets.Button;
019: import org.eclipse.swt.widgets.Composite;
020: import org.eclipse.ui.internal.part.components.services.IStatusFactory;
021: import org.eclipse.ui.internal.part.components.services.ISystemLog;
022: import org.eclipse.ui.internal.part.components.services.IUserMessages;
023:
024: /**
025: * Example view that opens dialogs and logs errors to the Eclipse log.
026: *
027: * @since 3.1
028: */
029: public class ErrorViewNew {
030: // Dependencies
031: private IStatusFactory errors;
032: private ISystemLog log;
033: private IUserMessages dialogs;
034:
035: public ErrorViewNew(Composite parent, IStatusFactory errorContext,
036: IUserMessages dialogs, ISystemLog log) {
037: // Remember dependencies
038: this .errors = errorContext;
039: this .dialogs = dialogs;
040: this .log = log;
041:
042: // Create widgets
043: GridLayout layout = new GridLayout();
044: layout.numColumns = 3;
045: parent.setLayout(layout);
046:
047: Button newButton = new Button(parent, SWT.PUSH);
048: newButton.setText("Log an error");
049: newButton.addSelectionListener(new SelectionAdapter() {
050: /* (non-Javadoc)
051: * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
052: */
053: public void widgetSelected(SelectionEvent e) {
054: logError();
055: }
056: });
057: newButton.setLayoutData(new GridData(
058: GridData.HORIZONTAL_ALIGN_BEGINNING
059: | GridData.VERTICAL_ALIGN_CENTER));
060:
061: Button displayError = new Button(parent, SWT.PUSH);
062: displayError.setText("Display an error");
063: displayError.addSelectionListener(new SelectionAdapter() {
064: /* (non-Javadoc)
065: * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
066: */
067: public void widgetSelected(SelectionEvent e) {
068: displayError();
069: }
070: });
071: displayError.setLayoutData(new GridData(
072: GridData.HORIZONTAL_ALIGN_BEGINNING
073: | GridData.VERTICAL_ALIGN_CENTER));
074:
075: Button displayMessage = new Button(parent, SWT.PUSH);
076: displayMessage.setText("Display a message");
077: displayMessage.addSelectionListener(new SelectionAdapter() {
078: /* (non-Javadoc)
079: * @see org.eclipse.swt.events.SelectionAdapter#widgetSelected(org.eclipse.swt.events.SelectionEvent)
080: */
081: public void widgetSelected(SelectionEvent e) {
082: displayMessage();
083: }
084: });
085: displayMessage.setLayoutData(new GridData(
086: GridData.HORIZONTAL_ALIGN_BEGINNING
087: | GridData.VERTICAL_ALIGN_CENTER));
088: }
089:
090: /**
091: * Write an exception to the error log
092: */
093: protected void logError() {
094: Exception e = new NullPointerException();
095:
096: log.log(e);
097: }
098:
099: /**
100: * Display an error dialog
101: */
102: protected void displayError() {
103: Exception e = new NullPointerException();
104:
105: dialogs.showError("An error occurred", e);
106: }
107:
108: /**
109: * Display an info dialog
110: */
111: protected void displayMessage() {
112: dialogs.show(IStatus.INFO, "This is a message");
113: }
114: }
|