Skip to content

Commit

Permalink
refactor code structure
Browse files Browse the repository at this point in the history
  • Loading branch information
Benny committed Mar 7, 2016
1 parent 44ce901 commit 4536748
Show file tree
Hide file tree
Showing 36 changed files with 99 additions and 89 deletions.

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.benny.library.kbinding.common.adapter
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import com.benny.library.kbinding.bind.ItemViewModel
import com.benny.library.kbinding.viewmodel.ItemViewModel
import com.benny.library.kbinding.view.IViewCreator

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package com.benny.library.kbinding.common.adapter

import android.view.View
import android.view.ViewGroup
import com.benny.library.kbinding.bind.ItemViewModel
import com.benny.library.kbinding.viewmodel.ItemViewModel
import com.benny.library.kbinding.view.IViewCreator

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.benny.library.kbinding.bind;

/**
* Created by benny on 3/7/16.
*/

public interface BindingBuilder<T> {
void build(final T target);
}
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.benny.library.kbinding.compiler;

import com.benny.library.kbinding.viewmodel.Command;
import com.squareup.javapoet.*;

import com.benny.library.kbinding.bind.Command;
import kotlin.Unit;
import kotlin.jvm.functions.Function1;
import org.apache.commons.lang3.StringUtils;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.benny.library.kbinding.compiler;

import com.benny.library.kbinding.bind.BindingBuilder;
import com.squareup.javapoet.*;

import java.util.ArrayList;
Expand All @@ -19,8 +20,6 @@ public class ViewModelClass {
public static final String BIND_COMMAND_CALL = "bindCommandV2";
public static final String VIEW_MODEL_CLASS_SUFFIX = "$$KB";

private static final ClassName BINDING_BUILDER = ClassName.get("com.benny.library.kbinding.internal", "BindingBuilder");

private final String classPackage;
private final String className;
private final String targetClass;
Expand All @@ -41,7 +40,7 @@ public JavaFile brewJava() {
TypeSpec.Builder result = TypeSpec.classBuilder(className)
.addModifiers(PUBLIC);

result.addSuperinterface(ParameterizedTypeName.get(BINDING_BUILDER, TypeVariableName.get(targetClass)));
result.addSuperinterface(ParameterizedTypeName.get(ClassName.get(BindingBuilder.class), TypeVariableName.get(targetClass)));
result.addMethod(createBuildMethod());

return JavaFile.builder(classPackage, result.build())
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.benny.library.kbinding.bind;
package com.benny.library.kbinding.viewmodel;

/**
* Created by benny on 3/4/16.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import android.support.v7.widget.RecyclerView
import android.view.View
import android.view.ViewGroup
import android.widget.AdapterView
import com.benny.library.kbinding.bind.ItemViewModel
import com.benny.library.kbinding.viewmodel.ItemViewModel
import com.benny.library.kbinding.common.adapter.AdapterItemAccessor
import com.benny.library.kbinding.view.IViewCreator

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.benny.library.kbinding.support.v4.adapter
import android.support.v4.view.PagerAdapter
import android.view.View
import android.view.ViewGroup
import com.benny.library.kbinding.bind.ItemViewModel
import com.benny.library.kbinding.viewmodel.ItemViewModel
import com.benny.library.kbinding.view.IViewCreator

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.benny.library.kbinding.bind

import com.benny.library.kbinding.converter.*
import com.benny.library.kbinding.viewmodel.IViewModel
import rx.Observable
import rx.functions.Action1
import rx.subscriptions.CompositeSubscription
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
package com.benny.library.kbinding.bind

/**
* Created by benny on 3/3/16.
*/

interface BindingBuilder<T> {
fun build(target: T)
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
package com.benny.library.kbinding.bind

import com.benny.library.kbinding.viewmodel.Command
import com.benny.library.kbinding.viewmodel.ViewModel
import kotlin.properties.Delegates
import kotlin.properties.ReadOnlyProperty
import kotlin.properties.ReadWriteProperty
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package com.benny.library.kbinding.bind

import java.util.HashMap

/**
* Created by benny on 3/4/16.
*/

object BindingInitializer {
var initializers: MutableMap<Class<*>, BindingBuilder<*>> = mutableMapOf()

@SuppressWarnings("unchecked")
fun init(obj: Any) {
getOrCreateBuilder(obj.javaClass).build(obj)
}

@Suppress("UNCHECKED_CAST")
private fun <T> getOrCreateBuilder(clazz: Class<T>): BindingBuilder<T> {
return initializers.getOrPut(clazz, {
try {
return Class.forName(clazz.canonicalName + "\$\$KB").newInstance() as BindingBuilder<T>
} catch (e: Exception) {
return MockBindingBuilder()
}
}) as BindingBuilder<T>
}

class MockBindingBuilder<T> : BindingBuilder<T> {
override fun build(target: T) {
}
}
}
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.benny.library.kbinding.bind

import com.benny.library.kbinding.viewmodel.Command
import rx.Observable
import rx.Subscription
import rx.functions.Action1
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package com.benny.library.kbinding.bind

import com.benny.library.kbinding.converter.OneWayConverter
import com.benny.library.kbinding.viewmodel.Property
import rx.Observable
import rx.Subscription
import rx.functions.Action1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.benny.library.kbinding.bind

import com.benny.library.kbinding.converter.EmptyOneWayConverter2
import com.benny.library.kbinding.converter.OneWayConverter
import com.benny.library.kbinding.viewmodel.Property
import rx.Observable
import rx.Subscription
import rx.functions.Action1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package com.benny.library.kbinding.bind

import com.benny.library.kbinding.converter.EmptyTwoWayConverter
import com.benny.library.kbinding.converter.TwoWayConverter
import com.benny.library.kbinding.viewmodel.Property
import rx.Observable
import rx.Subscription
import rx.functions.Action1
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ import android.view.View
import android.view.ViewGroup
import com.benny.library.kbinding.bind.*
import com.benny.library.kbinding.dsl.bindableLayout
import com.benny.library.kbinding.internal.BindingInitializer
import com.benny.library.kbinding.bind.BindingInitializer
import com.benny.library.kbinding.viewmodel.IViewModel
import org.jetbrains.anko.AnkoContext

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ package com.benny.library.kbinding.view

import com.benny.library.kbinding.bind.BindingDelegate
import com.benny.library.kbinding.bind.BindingDisposer
import com.benny.library.kbinding.bind.IViewModel
import com.benny.library.kbinding.bind.ItemViewModel
import com.benny.library.kbinding.viewmodel.IViewModel
import com.benny.library.kbinding.viewmodel.ItemViewModel

/**
* Created by benny on 12/23/15.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package com.benny.library.kbinding.view

import com.benny.library.kbinding.bind.BindingDisposer
import com.benny.library.kbinding.bind.ItemViewModel
import com.benny.library.kbinding.viewmodel.ItemViewModel
import rx.functions.Func2
import rx.functions.Func3

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.benny.library.kbinding.view
import android.view.View
import com.benny.library.kbinding.bind.BindingDelegate
import com.benny.library.kbinding.bind.BindingDisposer
import com.benny.library.kbinding.bind.IViewModel
import com.benny.library.kbinding.viewmodel.IViewModel

/**
* Created by benny on 12/14/15.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.benny.library.kbinding.view
import android.view.View
import android.view.ViewGroup
import com.benny.library.kbinding.bind.BindingDisposer
import com.benny.library.kbinding.bind.ItemViewModel
import com.benny.library.kbinding.viewmodel.ItemViewModel

/**
* Created by benny on 11/18/15.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.benny.library.kbinding.bind;
package com.benny.library.kbinding.viewmodel;

import rx.functions.Action1;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.benny.library.kbinding.bind
package com.benny.library.kbinding.viewmodel

import com.benny.library.kbinding.bind.*
import com.benny.library.kbinding.converter.OneWayConverter
import rx.Subscription
import rx.functions.Action1
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package com.benny.library.kbinding.bind;
package com.benny.library.kbinding.viewmodel;

import com.benny.library.kbinding.viewmodel.ViewModel
import kotlin.properties.Delegates

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.benny.library.kbinding.bind
package com.benny.library.kbinding.viewmodel

import rx.Observable
import rx.Observer
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.benny.library.kbinding.bind;
package com.benny.library.kbinding.viewmodel;

import android.util.Log
import com.benny.library.kbinding.bind.*
import com.benny.library.kbinding.converter.OneWayConverter
import com.benny.library.kbinding.internal.BindingInitializer
import com.benny.library.kbinding.bind.BindingInitializer
import com.benny.library.kbinding.viewmodel.IViewModel
import rx.Subscription
import rx.functions.Action1
import rx.subscriptions.CompositeSubscription
Expand Down Expand Up @@ -101,7 +103,7 @@ open class ViewModel() : IViewModel {
}
}

fun <T> Delegates.property(): ReadWriteProperty<Any, T?> = Delegates.property<T?>(null)
fun <T> Delegates.property(): ReadWriteProperty<Any, T?> = property<T?>(null)

fun <T> Delegates.property(initialValue: T): ReadWriteProperty<Any, T> {
return object : ReadWriteProperty<Any, T> {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package com.benny.library.kbinding
import android.os.Build
import com.benny.library.kbinding.bind.BindingAssembler
import com.benny.library.kbinding.bind.BindingDisposer
import com.benny.library.kbinding.bind.ViewModel
import com.benny.library.kbinding.viewmodel.ViewModel
import com.benny.library.kbinding.bind.oneWayPropertyBinding
import org.junit.After
import org.junit.Assert
Expand Down
20 changes: 10 additions & 10 deletions sample/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -62,22 +62,22 @@ android {

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
//compile project(':kbinding')
//compile project(':kbinding-common')
//compile project(':kbinding-support-v4')
//compile project(':kbinding-recyclerview-v7')
compile project(':kbinding')
compile project(':kbinding-common')
compile project(':kbinding-support-v4')
compile project(':kbinding-recyclerview-v7')

//kapt project(':kbinding-compiler')
kapt project(':kbinding-compiler')

compile 'com.android.support:appcompat-v7:23.2.0'
compile 'com.android.support:design:23.2.0'
compile 'com.android.support:gridlayout-v7:23.2.0'

compile 'com.benny.library:kbinding:0.2.0'
compile 'com.benny.library:kbinding-common:0.2.0'
compile 'com.benny.library:kbinding-recyclerview-v7:0.2.0'
compile 'com.benny.library:kbinding-support-v4:0.2.0'
kapt 'com.benny.library:kbinding-compiler:0.2.0'
//compile 'com.benny.library:kbinding:0.2.0'
//compile 'com.benny.library:kbinding-common:0.2.0'
//compile 'com.benny.library:kbinding-recyclerview-v7:0.2.0'
//compile 'com.benny.library:kbinding-support-v4:0.2.0'
//kapt 'com.benny.library:kbinding-compiler:0.2.0'


compile 'com.google.code.gson:gson:2.4'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ import android.support.v7.app.AppCompatActivity
import android.view.MenuItem
import com.benny.library.kbinding.bind.BindingDelegate
import com.benny.library.kbinding.bind.BindingDisposer
import com.benny.library.kbinding.bind.ViewModel
import com.benny.library.kbinding.view.BindingDisposerGenerator
import com.benny.library.kbinding.viewmodel.ViewModel

/**
* Created by benny on 12/23/15.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package com.benny.app.sample.ui.fragment
import android.support.v4.app.Fragment
import com.benny.library.kbinding.bind.BindingDelegate
import com.benny.library.kbinding.bind.BindingDisposer
import com.benny.library.kbinding.bind.ViewModel
import com.benny.library.kbinding.view.BindingDisposerGenerator
import com.benny.library.kbinding.viewmodel.ViewModel


/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import android.widget.TextView
import com.benny.app.sample.R
import com.benny.app.sample.viewmodel.LoginViewModel
import com.benny.library.kbinding.bind.BindingMode
import com.benny.library.kbinding.bind.Command
import com.benny.library.kbinding.common.bindings.click
import com.benny.library.kbinding.common.bindings.enabled
import com.benny.library.kbinding.common.bindings.text
Expand Down
Loading

0 comments on commit 4536748

Please sign in to comment.