OSDN Git Service

initial commit
[xdf/git-repos.git] / xdf-swing / src / main / java / jp / ac / aiit / xdf / component / swing / attribute / FixedAttributeProcessor.java
1 package jp.ac.aiit.xdf.component.swing.attribute;
2
3 import java.awt.Component;
4 import java.awt.Dimension;
5 import java.util.HashMap;
6 import java.util.Map;
7
8
9 /**
10  * @author Shunichi Takagi
11  */
12 public class FixedAttributeProcessor implements AttributeProcessor {
13
14         @Override
15         public void invokeSet(Object target, String name, Object value) {
16                 if( name.equals("fixed") ) {
17                         Component c = (Component) target;
18                         Dimension dim = c.getPreferredSize();
19                         
20                         if( value.equals("vertical") ) {
21                                 c.setMinimumSize(new Dimension(c.getMinimumSize().width, dim.height));
22                                 c.setMaximumSize(new Dimension(c.getMaximumSize().width, dim.height));
23                         } else if( value.equals("horizontal") ) {
24                                 c.setMinimumSize(new Dimension(dim.width, c.getMinimumSize().height));
25                                 c.setMaximumSize(new Dimension(dim.width, c.getMinimumSize().height));
26                         } else if( value.equals("both") ) {
27                                 c.setMinimumSize(dim);
28                                 c.setMaximumSize(dim);
29                         }
30                 }
31         }
32
33         @Override
34         public Map<String, Dimension> invokeGet(Object target, String name) {
35                 if( name.equals("fixed") ) {
36                         Map<String, Dimension> map = new HashMap<String, Dimension>();
37                         map.put("minimumsize", ((Component)target).getMinimumSize());
38                         map.put("maximumsize", ((Component)target).getMaximumSize());
39                         return map;
40                 }
41                 return null;
42         }
43
44 }