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} (default) if the {@link #comparator} expects folders as arguments,
44      * and {@code true} 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