private LabelIconView selectedTarget = null;
private LabelIconView cutTarget = null;
private List<LabelIconView> labelIconViewList = new ArrayList<LabelIconView>();
-
+
private Animation anime;
private int currentX;
private int currentY;
public void setActivity(EverFolderActivity activity) {
this.activity = activity;
}
-
+
@Override
protected void onLayout(boolean changed, int left, int top, int right,
int bottom) {
public LabelIconView getSelectedTarget() {
return selectedTarget;
}
-
+
public void addView(LabelIconView child) {
- super.addView(child);
+ addView(child, true);
+ }
+
+ public void addView(LabelIconView child, boolean isAddView) {
+ if (isAddView) {
+ super.addView(child);
+ }
labelIconViewList.add(child);
}
- public void removeAllViews(){
+ public void removeAllViews() {
super.removeAllViews();
labelIconViewList.clear();
}
-
- public void moveTop(LabelIconView child){
+
+ public void moveTop(LabelIconView child) {
this.removeView(child);
this.addView(child);
}
-
- private LabelIconView getView(int x, int y, LabelIconView v, List<LabelIconView> list, boolean flag) {
+
+ private LabelIconView getView(int x, int y, LabelIconView v,
+ List<LabelIconView> list, boolean flag) {
Rect rect = new Rect();
+ LabelIconView sv;
if (v != null) {
- if (flag){
- v.getHitRect(rect);
+ if (flag) {
+ v.getHitRect(rect);
if (rect.contains(x, y)) {
return v;
}
}
for (LabelIconView view : list) {
if (view != v) {
- view.getHitRect(rect);
+ view.getHitRect(rect);
if (rect.contains(x, y)) {
-
return view;
}
}
public void setScrollView(final IconScrollView scrollView) {
this.scrollView = scrollView;
this.setOnLongClickListener(this);
- //this.setLongClickable(true);
-
+ // this.setLongClickable(true);
+
anime = AnimationUtils.loadAnimation(context, R.anim.sample);
anime.setAnimationListener(new AnimationListener() {
public void onAnimationStart(Animation animation) {
// }
target = null;
destTarget = null;
-
+
scrollView.setScrollable(true);
scrollView.requestDisallowInterceptTouchEvent(false);
scrollView.invalidate();
}
});
}
-
- public void refresh(){
- if (selectedTarget != null){
+
+ public void refresh() {
+ if (selectedTarget != null) {
long id = selectedTarget.getNodeId();
- for (LabelIconView view : labelIconViewList){
- if (view.getNodeId() == id){
+ for (LabelIconView view : labelIconViewList) {
+ if (view.getNodeId() == id) {
selectedTarget = view;
target = view;
selectedTarget.setAlpha(255);
}
}
}
- if (cutTarget != null){
+ if (cutTarget != null) {
long id = cutTarget.getNodeId();
- for (LabelIconView view : labelIconViewList){
- if (view.getNodeId() == id){
+ for (LabelIconView view : labelIconViewList) {
+ if (view.getNodeId() == id) {
cutTarget = view;
cutTarget.clearColorFilter();
cutTarget.setAlpha(64);
}
}
- }
+ }
}
-
- public LabelIconView getCutTarget(){
+
+ public LabelIconView getCutTarget() {
return cutTarget;
}
-
- public void setCutTarget(LabelIconView cutTarget){
+
+ public void setCutTarget(LabelIconView cutTarget) {
this.cutTarget = cutTarget;
selectedTarget = null;
target = null;
}
-
+
@Override
public boolean onTouchEvent(MotionEvent event) {
try {
x -= dx;
y -= dy;
-
+
int sx = x + scrollView.getScrollX();
int sy = y + scrollView.getScrollY();
LabelIconView v = getView(sx, sy, target, labelIconViewList, true);
LabelIconView obj = (LabelIconView) v;
- //int size = labelIconViewList.size();
+ // int size = labelIconViewList.size();
if (target == null) {
target = obj;
}
- if (target == null){
- return super.onTouchEvent(event);
+ if (target == null) {
+ return super.onTouchEvent(event);
}
- this.getParent().requestDisallowInterceptTouchEvent(true);
-
+ this.getParent().requestDisallowInterceptTouchEvent(true);
+
if (event.getAction() == MotionEvent.ACTION_MOVE) {
if (!longClickFlg) {
return super.onTouchEvent(event);
}
- if (target instanceof StatusIconView){
- return super.onTouchEvent(event);
+ if (target instanceof StatusIconView) {
+ return super.onTouchEvent(event);
}
obj = target;
-
+
int sh = scrollView.getHeight();
int lh = this.getHeight();
int maxY = lh - sh;
int py = scrollView.getScrollY();
int sdy = 10;
int N = 100;
- if (y < N){
- if (py > 0){
- if (py < sdy){
+ if (y < N) {
+ if (py > 0) {
+ if (py < sdy) {
sdy = py;
}
scrollView.smoothScrollTo(0, py - sdy);
currentY -= sdy;
}
- }
- else if (sh - y < N){
- if (py < maxY){
- if (maxY - py < sdy){
+ } else if (sh - y < N) {
+ if (py < maxY) {
+ if (maxY - py < sdy) {
sdy = maxY - py;
}
scrollView.smoothScrollTo(0, py + sdy);
currentX -= diffX;
currentY -= diffY;
- // currentX = x;;
- // currentY = y;
obj.layout(currentX, currentY, currentX + obj.getWidth(),
currentY + obj.getHeight());
v = getView(sx, sy, target, labelIconViewList, false);
if (destTarget == null) {
- if (v != null){
+ if (v != null) {
destTarget = v;
destTarget.setAlpha(128);
}
} else {
- if (v != destTarget){
+ if (v != destTarget) {
destTarget.setAlpha(255);
destTarget = v;
- if (destTarget != null){
+ if (destTarget != null) {
destTarget.setAlpha(128);
}
}
}
} else if (event.getAction() == MotionEvent.ACTION_DOWN) {
- //if (obj == target){
- if (obj != null){
- if (obj != target){
+ // if (obj == target){
+ if (obj != null) {
+ if (obj != target) {
target.clearColorFilter();
target = obj;
}
- if (target instanceof StatusIconView){
- StatusIconView siv = (StatusIconView)target;
- LabelIconView rv = siv.getRoot();
- long id = rv.getNodeId();
-
+ // if (target instanceof StatusIconView){
+ if (target.getSelectedView(sx - target.getLeft(), sy
+ - target.getTop()) instanceof StatusIconView) {
+// StatusIconView siv = (StatusIconView) target;
+// LabelIconView rv = siv.getRoot();
+// long id = rv.getNodeId();
+ long id = target.getNodeId();
+
activity.execute(id);
- return super.onTouchEvent(event);
+ // return super.onTouchEvent(event);
+ return true;
}
-
- if (selectedTarget != null && selectedTarget == target){
+
+ if (selectedTarget != null && selectedTarget == target) {
long id = selectedTarget.getNodeId();
target.clearColorFilter();
target = null;
selectedTarget = target;
activity.targetSelectedChanged(true);
-
+
activity.executeView(id);
- return super.onTouchEvent(event);
+ return super.onTouchEvent(event);
}
offsetX = x;
offsetY = y;
// TODO
currentX = obj.getLeft();
currentY = obj.getTop();
-
+
target.setAlpha(255);
target.setColorFilter(Color.RED, Mode.LIGHTEN);
selectedTarget = target;
activity.targetSelectedChanged(true);
-
+
scrollView.setScrollable(false);
- }
- else {
+ } else {
target.clearColorFilter();
target = null;
selectedTarget = target;
if (!longClickFlg) {
return super.onTouchEvent(event);
}
- if (target instanceof StatusIconView){
- return super.onTouchEvent(event);
+ if (target instanceof StatusIconView) {
+ // return super.onTouchEvent(event);
+ return true;
}
obj = target;
long src = target.getNodeId();
long dst = destTarget.getNodeId();
activity.execute(src, dst);
-
+
// TODO
target = null;
destTarget = null;
// T29171
selectedTarget = null;
-
+
scrollView.setScrollable(true);
scrollView.requestDisallowInterceptTouchEvent(false);
scrollView.invalidate();
longClickFlg = false;
}
-
+
return super.onTouchEvent(event);
} catch (Exception e) {
e.printStackTrace();
if (target == null) {
return false;
}
- if (target instanceof StatusIconView){
+ if (target instanceof StatusIconView) {
return false;
}
-
+
LabelIconView v = (LabelIconView) target;
v.setAlpha(128);
v.clearColorFilter();
moveTop(target);
-
+
longClickFlg = true;
return true;
}
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.PorterDuff.Mode;
-import android.view.ViewGroup;
+import android.graphics.Rect;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
-import com.yuji.ef.dao.Node;
-
public class LabelIconView extends LinearLayout {
private int initX = 0;
private int initY = 0;
- private LabelIconView statusImageView = null;
+ // private LabelIconView statusImageView = null;
+ private StatusIconView statusImageView = null;
private ImageView imageView = null;
private TextView textView = null;
- private long id;
+ private long id = -1;
public LabelIconView(Context context) {
super(context);
init(x, y);
Context context = this.getContext();
+ if (statusImageView != null) {
+ this.removeView(statusImageView);
+ }
if (imageView != null) {
this.removeView(imageView);
}
// TODO
if (bmp1 != null) {
statusImageView = new StatusIconView(context, this);
- //statusImageView.setImageBitmap(bmp1);
+ statusImageView.init(0, 0, null, bmp1, null);
}
imageView = new ImageView(context);
textView = new TextView(context);
textView.setText(text);
}
+
+ if (statusImageView != null) {
+ addView(statusImageView);
+ }
addView(imageView);
if (textView != null) {
addView(textView);
}
}
+ public LabelIconView getSelectedView(int x, int y) {
+ if (statusImageView != null) {
+ Rect rect = new Rect();
+
+ statusImageView.getHitRect(rect);
+ if (rect.contains(x, y)) {
+ return statusImageView;
+ }
+ }
+ return this;
+ }
+
public void setNodeId(long id) {
this.id = id;
- if (statusImageView != null){
+ if (statusImageView != null) {
statusImageView.setNodeId(id);
}
}