summaryrefslogtreecommitdiffstats
path: root/src/de/fhswf/fbin/java2fx/entities/FXFile.java
blob: be56ded8ce4b83f0e4c162a47c6f7f3059320722 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
package de.fhswf.fbin.java2fx.entities;

import java.io.File;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.ZoneOffset;

import javafx.beans.property.BooleanProperty;
import javafx.beans.property.LongProperty;
import javafx.beans.property.ObjectProperty;
import javafx.beans.property.SimpleBooleanProperty;
import javafx.beans.property.SimpleLongProperty;
import javafx.beans.property.SimpleObjectProperty;
import javafx.beans.property.SimpleStringProperty;
import javafx.beans.property.StringProperty;

public class FXFile
{
   private static String separator = System.getProperty("file.separator");
   
   private File file;
   
   public FXFile(File file)
   {
      this.file = file;
      setName(this.toString());
      setLastModified(LocalDateTime.ofEpochSecond(file.lastModified()/1000, 0, ZoneOffset.UTC));
      setLength(file.length());
      setHidden(file.isHidden());
   }

   public File getFile() {
      return this.file;
   }
   
   private StringProperty name;

   public void setName(String value)
   {
      nameProperty().set(value);
   }

   public String getName()
   {
      return nameProperty().get();
   }

   public StringProperty nameProperty()
   {
      if (name == null)
         name = new SimpleStringProperty(this, "name");
      return name;
   }

   private ObjectProperty<LocalDateTime> lastModified;

   public void setLastModified(LocalDateTime value)
   {
      lastModifiedProperty().set(value);
   }

   public LocalDateTime getLastModified()
   {
      return lastModifiedProperty().get();
   }

   public ObjectProperty<LocalDateTime> lastModifiedProperty()
   {
      if (lastModified == null)
         lastModified = new SimpleObjectProperty<LocalDateTime>(this, "lastModified");
      return lastModified;
   }

   private LongProperty length;

   public LongProperty lengthProperty()
   {
      if (length == null)
         length = new SimpleLongProperty(this, "length");
      return length;
   }

   public long getLength()
   {
      return lengthProperty().get();
   }

   public void setLength(long length)
   {
      lengthProperty().set(length);
   }
   
   private BooleanProperty hidden;

   public BooleanProperty hiddenProperty()
   {
      if (hidden == null)
         hidden = new SimpleBooleanProperty(this, "hidden");
      return this.hidden;
   }

   public boolean isHidden()
   {
      return hiddenProperty().get();
   }

   public void setHidden(boolean hidden)
   {
      hiddenProperty().set(hidden);
   }
   
   @Override
   public String toString()
   {
      String name = file.getName();
      if (!name.isEmpty()) {
      int index = name.lastIndexOf(separator);
      if (index != -1)
         name = name.substring(index);
      }
      else {
         name = file.getAbsolutePath();
      }
      return name;
   }
}