@Override
public void process(JComponent target, DeclarationSet ds) {
Property p = SwingProperties.border;
if (ds.contains(p)) {
GroupBorder border = getGroupBorder(ds);
if (border != null) {
p = borderStroke;
if (ds.contains(p)) border.setStroke(ds.getValue(p, Paint.class));
p = borderThickness;
if (ds.contains(p)) border.setThickness(ds.getValue(p, Insets.class, SwingFunctions.insets));
p = borderHeaderStroke;
if (ds.contains(p)) border.setHeaderStroke(ds.getValue(p, Paint.class));
p = borderHeaderThickness;
if (ds.contains(p)) border.setHeaderThickness(ds.getValue(p, Insets.class, SwingFunctions.insets));
p = borderHeaderFill;
if (ds.contains(p)) border.setHeaderFill(ds.getValue(p, Paint.class));
p = borderTitle;
if (ds.contains(p)) border.setTitle(ds.getValue(p, String.class));
p = borderIcon;
if (ds.contains(p)) border.setTitleIcon(ds.getValue(p, Icon.class, SwingFunctions.icon));
p = borderFont;
if (ds.contains(p)) border.setTitleFont(ds.getValue(p, Font.class, SwingFunctions.font));
p = borderForeground;
if (ds.contains(p)) border.setTitleForeground(ds.getValue(p, Color.class));
p = borderMargin;
if (ds.contains(p)) border.setTitleMargin(ds.getValue(p, Insets.class, SwingFunctions.insets));
}
}
}