r4fterman/pdf.forms

View on GitHub
src/main/java/org/pdf/forms/widgets/GroupWidget.java

Summary

Maintainability
B
6 hrs
Test Coverage
F
20%
package org.pdf.forms.widgets;

import static java.util.stream.Collectors.toList;

import java.awt.*;
import java.util.HashSet;
import java.util.List;

import javax.swing.*;

import org.pdf.forms.model.des.JavaScriptContent;
import org.pdf.forms.model.des.Widget;
import org.pdf.forms.model.des.Widgets;
import org.pdf.forms.widgets.components.PdfCaption;
import org.pdf.forms.widgets.utils.WidgetSelection;

/**
 * Special widget object that represents a group of widgets. Although this class implements IWidget (as all widgets must
 * do) it does not extend Widget
 */
public class GroupWidget implements IWidget {

    private static int groupNextWidgetNumber = 1;

    private static final int TYPE = IWidget.GROUP;

    private final Icon icon;
    private final Widget widget;

    private List<IWidget> widgetsInGroup;
    private String widgetName;

    public GroupWidget() {
        icon = new ImageIcon(getClass().getResource("/org/pdf/forms/res/Group.gif"));

        this.widgetName = "Group" + groupNextWidgetNumber;
        groupNextWidgetNumber++;

        this.widget = new Widget();
        widget.setType("GROUP");
        widget.setName(widgetName);

        widget.setJavaScript(null);
        widget.setProperties(null);
        widget.setWidgets(new Widgets());
    }

    @Override
    public List<IWidget> getWidgetsInGroup() {
        return widgetsInGroup;
    }

    @Override
    public void setWidgetsInGroup(final List<IWidget> widgetsInGroup) {
        this.widgetsInGroup = widgetsInGroup;

        final List<Widget> widgetList = widgetsInGroup.stream()
                .map(IWidget::getWidgetModel)
                .collect(toList());
        widget.getWidgets().setWidget(widgetList);
    }

    @Override
    public Rectangle getBounds() {
        return WidgetSelection.getMultipleWidgetBounds(new HashSet<>(widgetsInGroup));
    }

    @Override
    public int getType() {
        return TYPE;
    }

    @Override
    public String getWidgetName() {
        return widgetName;
    }

    @Override
    public Icon getIcon() {
        return icon;
    }

    public void setName(final String widgetName) {
        this.widgetName = widgetName;
    }

    @Override
    public void setAllProperties() {
        // not supported by groups
    }

    @Override
    public int getArrayNumber() {
        return 0;
    }

    @Override
    public JavaScriptContent getJavaScript() {
        return widget.getJavaScript();
    }

    @Override
    public Widget getWidgetModel() {
        return widget;
    }

    @Override
    public void setParagraphProperties(final int currentlyEditing) {
        // not supported by groups
    }

    @Override
    public void setLayoutProperties() {
        // not supported by groups
    }

    @Override
    public void setFontProperties(final int currentlyEditing) {
        // not supported by groups
    }

    @Override
    public void setCaptionProperties() {
        // not supported by groups
    }

    @Override
    public JComponent getComponent() {
        return null;
    }

    @Override
    public void setPosition(
            final int x,
            final int y) {
        // not supported by groups
    }

    @Override
    public void setX(final int x) {
        // not supported by groups
    }

    @Override
    public void setY(final int y) {
        // not supported by groups
    }

    @Override
    public int getX() {
        return 0;
    }

    @Override
    public int getY() {
        return 0;
    }

    @Override
    public int getWidth() {
        return 0;
    }

    @Override
    public int getHeight() {
        return 0;
    }

    @Override
    public void setSize(
            final int width,
            final int height) {
        // not supported by groups
    }

    @Override
    public int getResizeTypeForSplitComponent(
            final int mouseX,
            final int mouseY) {
        return 0;
    }

    @Override
    public boolean allowEditCaptionAndValue() {
        return false;
    }

    @Override
    public boolean allowEditOfCaptionOnClick() {
        return false;
    }

    @Override
    public Dimension getBoxSize() {
        return null;
    }

    @Override
    public JComponent getValueComponent() {
        return null;
    }

    @Override
    public PdfCaption getCaptionComponent() {
        return null;
    }

    @Override
    public void setLastX(final int lastX) {
    }

    @Override
    public void setLastY(final int lastY) {
    }

    @Override
    public int getLastX() {
        return 0;
    }

    @Override
    public int getLastY() {
        return 0;
    }

    @Override
    public Point getAbsoluteLocationsOfCaption() {
        return null;
    }

    @Override
    public Point getAbsoluteLocationsOfValue() {
        return null;
    }

    @Override
    public boolean isComponentSplit() {
        return false;
    }

    @Override
    public double getResizeHeightRatio() {
        return 0;
    }

    @Override
    public double getResizeWidthRatio() {
        return 0;
    }

    @Override
    public void setResizeHeightRatio(final double resizeHeightRatio) {
    }

    @Override
    public void setResizeWidthRatio(final double resizeWidthRation) {
    }

    @Override
    public double getResizeFromTopRatio() {
        return 0;
    }

    @Override
    public double getResizeFromLeftRatio() {
        return 0;
    }

    @Override
    public void setResizeFromTopRatio(final double resizeHeightRatio) {
    }

    @Override
    public void setResizeFromLeftRatio(final double resizeWidthRation) {
    }

    @Override
    public void setObjectProperties() {
    }

    @Override
    public void setBorderAndBackgroundProperties() {
    }

}