Search in sources :

Example 1 with DetailBindingInfo

use of org.eclipse.wb.internal.swing.databinding.model.bindings.DetailBindingInfo in project windowbuilder by eclipse.

the class DatabindingsProvider method configureMoveUpDown.

private int configureMoveUpDown(IBindingInfo binding, int sourceIndex, int targetIndex) {
    if (!(binding instanceof ColumnBindingInfo)) {
        List<IBindingInfo> bindings = getBindings();
        IBindingInfo target = bindings.get(targetIndex);
        boolean up = sourceIndex > targetIndex;
        // configure target index
        if (target instanceof ColumnBindingInfo) {
            ColumnBindingInfo column = (ColumnBindingInfo) target;
            // calculate column index
            if (up) {
                targetIndex = bindings.indexOf(column.getJTableBinding());
            } else {
                // skip all columns
                targetIndex += column.getJTableBinding().getColumns().size();
                // 
                target = bindings.get(targetIndex);
                if (target instanceof JTableBindingInfo) {
                    // skip all columns
                    JTableBindingInfo tableBinding = (JTableBindingInfo) target;
                    targetIndex += tableBinding.getColumns().size();
                } else if (target instanceof JListBindingInfo) {
                    // skip detail binding
                    targetIndex++;
                }
            }
        } else if (target instanceof DetailBindingInfo) {
            if (up) {
                DetailBindingInfo detail = (DetailBindingInfo) target;
                targetIndex = bindings.indexOf(detail.getJListBinding());
            } else {
                // skip detail binding
                targetIndex++;
                // 
                target = bindings.get(targetIndex);
                if (target instanceof JTableBindingInfo) {
                    // skip all columns
                    JTableBindingInfo tableBinding = (JTableBindingInfo) target;
                    targetIndex += tableBinding.getColumns().size();
                } else if (target instanceof JListBindingInfo) {
                    // skip detail binding
                    targetIndex++;
                }
            }
        } else if (target instanceof JTableBindingInfo && !up) {
            // skip all columns
            JTableBindingInfo tableBinding = (JTableBindingInfo) target;
            targetIndex += tableBinding.getColumns().size();
        } else if (target instanceof JListBindingInfo && !up) {
            // skip detail binding
            targetIndex++;
        }
    }
    return targetIndex;
}
Also used : IBindingInfo(org.eclipse.wb.internal.core.databinding.model.IBindingInfo) DetailBindingInfo(org.eclipse.wb.internal.swing.databinding.model.bindings.DetailBindingInfo) ColumnBindingInfo(org.eclipse.wb.internal.swing.databinding.model.bindings.ColumnBindingInfo) JTableBindingInfo(org.eclipse.wb.internal.swing.databinding.model.bindings.JTableBindingInfo) JListBindingInfo(org.eclipse.wb.internal.swing.databinding.model.bindings.JListBindingInfo)

Aggregations

IBindingInfo (org.eclipse.wb.internal.core.databinding.model.IBindingInfo)1 ColumnBindingInfo (org.eclipse.wb.internal.swing.databinding.model.bindings.ColumnBindingInfo)1 DetailBindingInfo (org.eclipse.wb.internal.swing.databinding.model.bindings.DetailBindingInfo)1 JListBindingInfo (org.eclipse.wb.internal.swing.databinding.model.bindings.JListBindingInfo)1 JTableBindingInfo (org.eclipse.wb.internal.swing.databinding.model.bindings.JTableBindingInfo)1