Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

Use ReadOnlyBooleanProperty instead of ObservableValue<Boolean> #4

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package org.nield.dirtyfx.beans

import javafx.beans.InvalidationListener
import javafx.beans.property.BooleanProperty
import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.SimpleBooleanProperty
import javafx.beans.value.ChangeListener
import javafx.beans.value.ObservableValue
Expand Down Expand Up @@ -35,10 +36,10 @@ class DirtyBooleanProperty(initialValue: Boolean): BooleanProperty(), DirtyPrope
_isDirtyProperty.set(false)
}

fun originalValueProperty(): ObservableValue<Boolean> = _originalValueProperty
fun originalValueProperty(): ReadOnlyBooleanProperty = _originalValueProperty
val originalValue get() = _originalValueProperty.get()

override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun getName() = delegate.name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class DirtyIntegerProperty(initialValue: Int): IntegerProperty(), DirtyProperty{
value = _originalValueProperty.get()
_isDirtyProperty.set(false)
}
override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun getName() = delegate.name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ class DirtyListProperty<T> constructor(originalList: List<T> = mutableListOf()):

val originalList get() = FXCollections.unmodifiableObservableList(_originalList)

override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun hashCode() = backingList.hashCode()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ class DirtyLongProperty(initialValue: Long): LongProperty(), DirtyProperty {
value = _originalValueProperty.get()
_isDirtyProperty.set(false)
}
override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun getName() = delegate.name
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class DirtyMapProperty<K,V> constructor(originalMap: Map<K,V>): DirtyProperty, M

val originalMap get() = FXCollections.unmodifiableObservableMap(_originalMap)

override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun hashCode() = backingMap.hashCode()
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package org.nield.dirtyfx.beans


import javafx.beans.property.Property
import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.SimpleBooleanProperty
import javafx.beans.property.SimpleObjectProperty
import javafx.beans.value.ChangeListener
Expand Down Expand Up @@ -34,6 +35,6 @@ class DirtyObjectProperty<T>(initialValue: T): Property<T> by SimpleObjectProper
value = _originalValueProperty.get()
_isDirtyProperty.set(false)
}
override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()
}
Original file line number Diff line number Diff line change
@@ -1,11 +1,12 @@
package org.nield.dirtyfx.beans

import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.ReadOnlyBooleanWrapper
import org.nield.dirtyfx.tracking.DirtyProperty

class DirtyReadOnlyWrapper(override val isDirty: Boolean): DirtyProperty {

override fun isDirtyProperty() = ReadOnlyBooleanWrapper(isDirty)
override fun isDirtyProperty(): ReadOnlyBooleanProperty = ReadOnlyBooleanWrapper(isDirty)

override fun rebaseline() {
// do nothing
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ class DirtySetProperty<T> constructor(originalSet: Set<T> = mutableSetOf()): Dir

val originalSet get() = FXCollections.unmodifiableObservableSet(_originalSet)

override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun hashCode() = backingSet.hashCode()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.nield.dirtyfx.beans

import javafx.beans.InvalidationListener
import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.SimpleBooleanProperty
import javafx.beans.property.StringProperty
import javafx.beans.property.SimpleStringProperty
Expand Down Expand Up @@ -38,7 +39,7 @@ class DirtyStringProperty(initialValue: String): StringProperty(), DirtyProperty
_isDirtyProperty.set(false)
}

override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun getName() = delegate.name
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package org.nield.dirtyfx.collections


import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.SimpleBooleanProperty
import javafx.beans.value.ObservableValue
import javafx.collections.FXCollections
import javafx.collections.ListChangeListener
import javafx.collections.ObservableList
Expand Down Expand Up @@ -42,7 +42,7 @@ class DirtyObservableList<T> private constructor(_originalList: List<T> = listOf

val originalList get() = FXCollections.unmodifiableObservableList(_originalList)

override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun hashCode() = currentList.hashCode()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package org.nield.dirtyfx.collections

import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.SimpleBooleanProperty
import javafx.beans.value.ObservableValue
import javafx.collections.FXCollections
import javafx.collections.MapChangeListener
import javafx.collections.ObservableMap
Expand Down Expand Up @@ -38,7 +38,7 @@ class DirtyObservableMap<K,V> private constructor(_originalMap: Map<K,V>,

val originalMap get() = FXCollections.unmodifiableObservableMap(_originalMap)

override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

override fun hashCode() = currentMap.hashCode()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package org.nield.dirtyfx.collections

import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.SimpleBooleanProperty
import javafx.beans.value.ObservableValue
import javafx.beans.value.WeakChangeListener
import javafx.collections.FXCollections
import javafx.collections.ObservableSet
import javafx.collections.SetChangeListener
Expand Down Expand Up @@ -36,7 +35,7 @@ class DirtyObservableSet<T> private constructor(_originalSet: Set<T> = setOf(),
addAll(_originalSet)
_isDirtyProperty.set(false)
}
override fun isDirtyProperty(): ObservableValue<Boolean> = _isDirtyProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _isDirtyProperty
override val isDirty get() = _isDirtyProperty.get()

val originalSet get() = FXCollections.unmodifiableObservableSet(_originalSet)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
package org.nield.dirtyfx.tracking

import javafx.beans.InvalidationListener
import javafx.beans.property.ReadOnlyBooleanProperty
import javafx.beans.property.SimpleBooleanProperty
import javafx.beans.value.ChangeListener
import javafx.beans.value.ObservableValue
import javafx.collections.FXCollections
import javafx.collections.ListChangeListener
import javafx.collections.WeakListChangeListener

class CompositeDirtyProperty: DirtyProperty, ObservableValue<Boolean> {
class CompositeDirtyProperty: ReadOnlyBooleanProperty(), DirtyProperty {

private val items = FXCollections.observableArrayList<DirtyProperty> { arrayOf(it.isDirtyProperty()) }
private val _dirtyStateProperty = SimpleBooleanProperty()
Expand All @@ -26,7 +26,7 @@ class CompositeDirtyProperty: DirtyProperty, ObservableValue<Boolean> {
/**
* Indicates if any tracked DirtyProperties are dirty
*/
override fun isDirtyProperty(): ObservableValue<Boolean> = _dirtyStateProperty
override fun isDirtyProperty(): ReadOnlyBooleanProperty = _dirtyStateProperty

/**
* Indicates if any tracked DirtyProperties are dirty
Expand Down Expand Up @@ -74,5 +74,11 @@ class CompositeDirtyProperty: DirtyProperty, ObservableValue<Boolean> {

override fun getValue() = _dirtyStateProperty.value

override fun get(): Boolean = _dirtyStateProperty.get()

override fun getName(): String = _dirtyStateProperty.name

override fun getBean(): Any = _dirtyStateProperty.bean


}
4 changes: 2 additions & 2 deletions src/main/kotlin/org/nield/dirtyfx/tracking/DirtyProperty.kt
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package org.nield.dirtyfx.tracking

import javafx.beans.value.ObservableValue
import javafx.beans.property.ReadOnlyBooleanProperty

interface DirtyProperty {
fun isDirtyProperty(): ObservableValue<Boolean>
fun isDirtyProperty(): ReadOnlyBooleanProperty
val isDirty: Boolean
fun rebaseline()
fun reset()
Expand Down