View Javadoc
1   /*
2    * Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
3    * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4    *
5    * This code is free software; you can redistribute it and/or modify it
6    * under the terms of the GNU General Public License version 2 only, as
7    * published by the Free Software Foundation.  Oracle designates this
8    * particular file as subject to the "Classpath" exception as provided
9    * by Oracle in the LICENSE file that accompanied this code.
10   *
11   * This code is distributed in the hope that it will be useful, but WITHOUT
12   * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13   * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
14   * version 2 for more details (a copy is included in the LICENSE file that
15   * accompanied this code).
16   *
17   * You should have received a copy of the GNU General Public License version
18   * 2 along with this work; if not, write to the Free Software Foundation,
19   * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20   *
21   * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22   * or visit www.oracle.com if you need additional information or have any
23   * questions.
24   */
25  
26  package sun.awt.shell;
27  
28  import javax.swing.*;
29  import java.util.Comparator;
30  
31  public class ShellFolderColumnInfo {
32      private String title;
33      private Integer width;
34      private boolean visible;
35      /**
36       * Allowed values are {@link SwingConstants#LEFT}, {@link SwingConstants#RIGHT}, {@link SwingConstants#LEADING},
37       * {@link SwingConstants#TRAILING}, {@link SwingConstants#CENTER}
38       */
39      private Integer alignment;
40      private SortOrder sortOrder;
41      private Comparator comparator;
42      /**
43       * <code>false</code> (default) if the {@link comparator} expects folders as arguments,
44       * and <code>true</code> if folder's column values. The first option is used default for comparison
45       * on Windows and also for separating files from directories when sorting using
46       * ShellFolderManager's inner comparator.
47       */
48      private boolean compareByColumn;
49  
50      public ShellFolderColumnInfo(String title, Integer width,
51                                   Integer alignment, boolean visible,
52                                   SortOrder sortOrder, Comparator comparator,
53                                   boolean compareByColumn) {
54          this.title = title;
55          this.width = width;
56          this.alignment = alignment;
57          this.visible = visible;
58          this.sortOrder = sortOrder;
59          this.comparator = comparator;
60          this.compareByColumn = compareByColumn;
61      }
62  
63      public ShellFolderColumnInfo(String title, Integer width,
64                                   Integer alignment, boolean visible,
65                                   SortOrder sortOrder, Comparator comparator) {
66          this(title, width, alignment, visible, sortOrder, comparator, false);
67      }
68  
69      /**
70       * This constructor is used by native code when getting column set for
71       * a folder under Windows
72       */
73      public ShellFolderColumnInfo(String title, int width, int alignment,
74                                   boolean visible) {
75          this(title, width, alignment, visible, null, null);
76      }
77  
78      public String getTitle() {
79          return title;
80      }
81  
82      public void setTitle(String title) {
83          this.title = title;
84      }
85  
86      public Integer getWidth() {
87          return width;
88      }
89  
90      public void setWidth(Integer width) {
91          this.width = width;
92      }
93  
94      public Integer getAlignment() {
95          return alignment;
96      }
97  
98      public void setAlignment(Integer alignment) {
99          this.alignment = alignment;
100     }
101 
102     public boolean isVisible() {
103         return visible;
104     }
105 
106     public void setVisible(boolean visible) {
107         this.visible = visible;
108     }
109 
110     public SortOrder getSortOrder() {
111         return sortOrder;
112     }
113 
114     public void setSortOrder(SortOrder sortOrder) {
115         this.sortOrder = sortOrder;
116     }
117 
118     public Comparator getComparator() {
119         return comparator;
120     }
121 
122     public void setComparator(Comparator comparator) {
123         this.comparator = comparator;
124     }
125 
126     public boolean isCompareByColumn() {
127         return compareByColumn;
128     }
129 
130     public void setCompareByColumn(boolean compareByColumn) {
131         this.compareByColumn = compareByColumn;
132     }
133 }