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 
ShellFolderColumnInfo(String title, Integer width, Integer alignment, boolean visible, SortOrder sortOrder, Comparator comparator, boolean compareByColumn)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 
ShellFolderColumnInfo(String title, Integer width, Integer alignment, boolean visible, SortOrder sortOrder, Comparator comparator)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      */
ShellFolderColumnInfo(String title, int width, int alignment, boolean visible)73     public ShellFolderColumnInfo(String title, int width, int alignment,
74                                  boolean visible) {
75         this(title, width, alignment, visible, null, null);
76     }
77 
getTitle()78     public String getTitle() {
79         return title;
80     }
81 
setTitle(String title)82     public void setTitle(String title) {
83         this.title = title;
84     }
85 
getWidth()86     public Integer getWidth() {
87         return width;
88     }
89 
setWidth(Integer width)90     public void setWidth(Integer width) {
91         this.width = width;
92     }
93 
getAlignment()94     public Integer getAlignment() {
95         return alignment;
96     }
97 
setAlignment(Integer alignment)98     public void setAlignment(Integer alignment) {
99         this.alignment = alignment;
100     }
101 
isVisible()102     public boolean isVisible() {
103         return visible;
104     }
105 
setVisible(boolean visible)106     public void setVisible(boolean visible) {
107         this.visible = visible;
108     }
109 
getSortOrder()110     public SortOrder getSortOrder() {
111         return sortOrder;
112     }
113 
setSortOrder(SortOrder sortOrder)114     public void setSortOrder(SortOrder sortOrder) {
115         this.sortOrder = sortOrder;
116     }
117 
getComparator()118     public Comparator getComparator() {
119         return comparator;
120     }
121 
setComparator(Comparator comparator)122     public void setComparator(Comparator comparator) {
123         this.comparator = comparator;
124     }
125 
isCompareByColumn()126     public boolean isCompareByColumn() {
127         return compareByColumn;
128     }
129 
setCompareByColumn(boolean compareByColumn)130     public void setCompareByColumn(boolean compareByColumn) {
131         this.compareByColumn = compareByColumn;
132     }
133 }
134