/*******************************************************************************
* 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;
}
}