parent
8d60332e62
commit
4b4346310d
@ -0,0 +1,82 @@ |
||||
package net.pokeranalytics.android.ui.fragment.data |
||||
|
||||
import net.pokeranalytics.android.model.realm.Transaction |
||||
import net.pokeranalytics.android.model.realm.TransactionType |
||||
import net.pokeranalytics.android.ui.adapter.RowRepresentableDataSource |
||||
import net.pokeranalytics.android.ui.view.RowRepresentable |
||||
import net.pokeranalytics.android.ui.view.RowRepresentableEditDescriptor |
||||
import net.pokeranalytics.android.ui.view.rowrepresentable.SimpleRow |
||||
import net.pokeranalytics.android.ui.view.rowrepresentable.TransactionTypeRow |
||||
|
||||
class TransactionTypeDataFragment : EditableDataFragment(), RowRepresentableDataSource { |
||||
|
||||
val transactionType: TransactionType |
||||
get() { |
||||
return this.item as TransactionType |
||||
} |
||||
|
||||
// RowRepresentableDataSource |
||||
|
||||
override fun adapterRows(): List<RowRepresentable>? { |
||||
return this.transactionType.adapterRows() |
||||
} |
||||
|
||||
override fun rowRepresentableForPosition(position: Int): RowRepresentable? { |
||||
return this.transactionType.rowRepresentableForPosition(position) |
||||
} |
||||
|
||||
override fun numberOfRows(): Int { |
||||
return this.transactionType.numberOfRows() |
||||
} |
||||
|
||||
override fun viewTypeForPosition(position: Int): Int { |
||||
return this.transactionType.viewTypeForPosition(position) |
||||
} |
||||
|
||||
override fun stringForRow(row: RowRepresentable): String { |
||||
return when (row) { |
||||
SimpleRow.NAME -> this.transactionType.name |
||||
else -> return super.stringForRow(row) |
||||
} |
||||
} |
||||
|
||||
override fun boolForRow(row: RowRepresentable): Boolean { |
||||
return when (row) { |
||||
TransactionTypeRow.TRANSACTION_ADDITIVE -> this.transactionType.additive |
||||
else -> super.boolForRow(row) |
||||
} |
||||
} |
||||
|
||||
override fun editDescriptors(row: RowRepresentable): ArrayList<RowRepresentableEditDescriptor>? { |
||||
return row.editingDescriptors(mapOf("defaultValue" to this.transactionType.name)) |
||||
} |
||||
|
||||
override fun isEnabled(row: RowRepresentable): Boolean { |
||||
return when (row) { |
||||
TransactionTypeRow.TRANSACTION_ADDITIVE -> { |
||||
val realm = getRealm() |
||||
val useCount = realm.where(Transaction::class.java) |
||||
.equalTo("type.id", this.transactionType.id).findAll().size |
||||
return useCount == 0 |
||||
} |
||||
else -> super.isEnabled(row) |
||||
} |
||||
} |
||||
|
||||
override fun isSelectable(row: RowRepresentable): Boolean { |
||||
return when (row) { |
||||
TransactionTypeRow.TRANSACTION_ADDITIVE -> { |
||||
val realm = getRealm() |
||||
val useCount = realm.where(Transaction::class.java) |
||||
.equalTo("type.id", this.transactionType.id).findAll().size |
||||
return useCount == 0 |
||||
} |
||||
else -> super.isSelectable(row) |
||||
} |
||||
} |
||||
|
||||
override fun getDataSource(): RowRepresentableDataSource { |
||||
return this |
||||
} |
||||
|
||||
} |
||||
Loading…
Reference in new issue