/******************************************************************************* * Copyright (c) 2008-2010 Sonatype, Inc. * 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: * Sonatype, Inc. - initial API and implementation *******************************************************************************/ package org.eclipse.m2e.core.ui.internal.util; import java.util.Map; import org.eclipse.jface.dialogs.Dialog; import org.eclipse.jface.dialogs.IDialogConstants; import org.eclipse.jface.dialogs.MessageDialog; import org.eclipse.jface.fieldassist.ControlDecoration; import org.eclipse.jface.fieldassist.FieldDecoration; import org.eclipse.jface.fieldassist.FieldDecorationRegistry; import org.eclipse.swt.SWT; import org.eclipse.swt.graphics.Font; import org.eclipse.swt.graphics.FontData; import org.eclipse.swt.widgets.Control; import org.eclipse.swt.widgets.Display; import org.eclipse.swt.widgets.Shell; import org.eclipse.m2e.core.internal.M2EUtils; /** * M2EUtils * * @author dyocum */ public class M2EUIUtils { public static Font deriveFont(Font f, int style, int height) { FontData[] fd = f.getFontData(); FontData[] newFD = new FontData[fd.length]; for(int i = 0; i < fd.length; i++ ) { newFD[i] = new FontData(fd[i].getName(), height, style); } return new Font(Display.getCurrent(), newFD); } public static void showErrorDialog(Shell shell, String title, String msg, Exception e) { StringBuffer buff = new StringBuffer(msg); Throwable t = M2EUtils.getRootCause(e); if(t != null && !nullOrEmpty(t.getMessage())) { buff.append(t.getMessage()); } MessageDialog.openError(shell, title, buff.toString()); } public static boolean nullOrEmpty(String s) { return s == null || s.length() == 0; } /** * @param shell * @param string * @param string2 * @param updateErrors */ public static void showErrorsForProjectsDialog(final Shell shell, final String title, final String message, final Map<String, Throwable> errorMap) { // TODO Auto-generated method showErrorsForProjectsDialog Display.getDefault().asyncExec(new Runnable() { public void run() { String[] buttons = {IDialogConstants.OK_LABEL}; int ok_button = 0; M2EErrorDialog errDialog = new M2EErrorDialog(shell, title, Dialog.getImage(Dialog.DLG_IMG_MESSAGE_ERROR), message, MessageDialog.ERROR, buttons, ok_button, errorMap); errDialog.create(); errDialog.open(); } }); } public static void addRequiredDecoration(Control control) { FieldDecoration fieldDecoration = FieldDecorationRegistry.getDefault().getFieldDecoration( FieldDecorationRegistry.DEC_REQUIRED); ControlDecoration controlDecoration = new ControlDecoration(control, SWT.LEFT | SWT.CENTER); controlDecoration.setDescriptionText(fieldDecoration.getDescription()); controlDecoration.setImage(fieldDecoration.getImage()); } }