/******************************************************************************* * Copyright (c) 2014 Red Hat, Inc. * Distributed under license by Red Hat, Inc. All rights reserved. * This program is 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: * Red Hat, Inc. - initial API and implementation ******************************************************************************/ package org.jboss.tools.foundation.ui.util; import org.eclipse.swt.layout.FormAttachment; import org.eclipse.swt.layout.FormData; import org.eclipse.swt.widgets.Control; import org.eclipse.ui.IWorkbenchPage; import org.eclipse.ui.IWorkbenchPart; import org.eclipse.ui.IWorkbenchWindow; import org.eclipse.ui.PartInitException; import org.eclipse.ui.PlatformUI; public class FormDataUtility { /* * This method is here for legacy purposes. Cannot add 'static' to the name * in case old users instantiate directly. :( * This is also the reason why the createFormData2 exists :| */ public FormData createFormData(Object topStart, int topOffset, Object bottomStart, int bottomOffset, Object leftStart, int leftOffset, Object rightStart, int rightOffset) { FormData data = new FormData(); return setFormAttachments(data, topStart, topOffset, bottomStart, bottomOffset, leftStart, leftOffset, rightStart, rightOffset); } /** * @since 2.4 */ public static FormData createFormData(int minHeight, int minWidth, Object topStart, int topOffset, Object bottomStart, int bottomOffset, Object leftStart, int leftOffset, Object rightStart, int rightOffset) { FormData data = new FormData(minWidth, minHeight); return setFormAttachments(data, topStart, topOffset, bottomStart, bottomOffset, leftStart, leftOffset, rightStart, rightOffset); } /* * Poorly named method, but cannot change due to api */ public static FormData createFormData2(Object topStart, int topOffset, Object bottomStart, int bottomOffset, Object leftStart, int leftOffset, Object rightStart, int rightOffset) { FormData data = new FormData(); return setFormAttachments(data, topStart, topOffset, bottomStart, bottomOffset, leftStart, leftOffset, rightStart, rightOffset); } /** * @since 2.4 */ public static FormData setFormAttachments(FormData data, Object topStart, int topOffset, Object bottomStart, int bottomOffset, Object leftStart, int leftOffset, Object rightStart, int rightOffset) { if( topStart != null ) { data.top = topStart instanceof Control ? new FormAttachment((Control)topStart, topOffset) : new FormAttachment(((Integer)topStart).intValue(), topOffset); } if( bottomStart != null ) { data.bottom = bottomStart instanceof Control ? new FormAttachment((Control)bottomStart, bottomOffset) : new FormAttachment(((Integer)bottomStart).intValue(), bottomOffset); } if( leftStart != null ) { data.left = leftStart instanceof Control ? new FormAttachment((Control)leftStart, leftOffset) : new FormAttachment(((Integer)leftStart).intValue(), leftOffset); } if( rightStart != null ) { data.right = rightStart instanceof Control ? new FormAttachment((Control)rightStart, rightOffset) : new FormAttachment(((Integer)rightStart).intValue(), rightOffset); } return data; } }