From 3b5728de6f2d8d2852fbb86fa8cac21e6dccc19b Mon Sep 17 00:00:00 2001 From: Stefan Suhren Date: Mon, 4 May 2015 22:11:28 +0200 Subject: Build a file browser looking like Finder --- src/de/fhswf/fbin/java2fx/entities/FXFile.java | 126 +++++++++++++++++++++++++ src/de/fhswf/fbin/java2fx/entities/Person.java | 50 ++++++++++ 2 files changed, 176 insertions(+) create mode 100644 src/de/fhswf/fbin/java2fx/entities/FXFile.java create mode 100644 src/de/fhswf/fbin/java2fx/entities/Person.java (limited to 'src/de/fhswf/fbin/java2fx/entities') diff --git a/src/de/fhswf/fbin/java2fx/entities/FXFile.java b/src/de/fhswf/fbin/java2fx/entities/FXFile.java new file mode 100644 index 0000000..be56ded --- /dev/null +++ b/src/de/fhswf/fbin/java2fx/entities/FXFile.java @@ -0,0 +1,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 lastModified; + + public void setLastModified(LocalDateTime value) + { + lastModifiedProperty().set(value); + } + + public LocalDateTime getLastModified() + { + return lastModifiedProperty().get(); + } + + public ObjectProperty lastModifiedProperty() + { + if (lastModified == null) + lastModified = new SimpleObjectProperty(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; + } +} diff --git a/src/de/fhswf/fbin/java2fx/entities/Person.java b/src/de/fhswf/fbin/java2fx/entities/Person.java new file mode 100644 index 0000000..a7de0e4 --- /dev/null +++ b/src/de/fhswf/fbin/java2fx/entities/Person.java @@ -0,0 +1,50 @@ +package de.fhswf.fbin.java2fx.entities; + +import javafx.beans.property.SimpleStringProperty; + +public class Person +{ + private final SimpleStringProperty firstName; + + private final SimpleStringProperty lastName; + + private final SimpleStringProperty email; + + public Person(String fName, String lName, String email) + { + this.firstName = new SimpleStringProperty(fName); + this.lastName = new SimpleStringProperty(lName); + this.email = new SimpleStringProperty(email); + } + + public String getFirstName() + { + return firstName.get(); + } + + public void setFirstName(String fName) + { + firstName.set(fName); + } + + public String getLastName() + { + return lastName.get(); + } + + public void setLastName(String fName) + { + lastName.set(fName); + } + + public String getEmail() + { + return email.get(); + } + + public void setEmail(String fName) + { + email.set(fName); + } + +} \ No newline at end of file -- cgit v1.2.3-70-g09d2