OSDN Git Service

T29235
authorYuji Konishi <yuji.k64613@gmail.com>
Mon, 13 Aug 2012 05:08:32 +0000 (14:08 +0900)
committerYuji Konishi <yuji.k64613@gmail.com>
Mon, 13 Aug 2012 05:08:32 +0000 (14:08 +0900)
source/workspace/EverFolder/src/com/yuji/ef/EverFolderActivity.java
source/workspace/EverFolder/src/com/yuji/ef/IconFrameLayout.java
source/workspace/EverFolder/src/com/yuji/ef/IconImageView.java
source/workspace/EverFolder/src/com/yuji/ef/LabelIconView.java
source/workspace/EverFolder/src/com/yuji/ef/StatusIconView.java
source/workspace/EverFolder/src/com/yuji/ef/dao/Node.java

index 2b49a4a..a65c1d2 100644 (file)
@@ -295,10 +295,11 @@ public class EverFolderActivity extends BaseActivity {
                        }
                        Bitmap bmp2 = BitmapFactory.decodeResource(r, node.getIconId());
                        createIconImageView(view, bmp1, bmp2, node.getName(), x, viewY);
-                       LabelIconView s = view.getStatusImageView();
-                       if (s != null) {
-                               s.setNodeId(node.getId());
-                       }
+//                     LabelIconView s = view.getStatusImageView();
+//                     if (s != null) {
+//                             s.setNodeId(node.getId());
+//                     }
+                       view.setNodeId(node.getId());
                }
                viewY += M;
 
@@ -335,13 +336,13 @@ public class EverFolderActivity extends BaseActivity {
                params.y = y;
                v.setLayoutParams(params);
 
+//             LabelIconView siv = v.getStatusImageView();
+//             if (siv != null) {
+//                     layout.addView(siv, false);
+//             }
+
                layout.addView(v);
                v.layout(x, y, x + v.getWidth(), y + v.getHeight());
-
-               LabelIconView siv = v.getStatusImageView();
-               if (siv != null) {
-                       createIconImageView(siv, null, bmp1, null, x - 50, y);
-               }
        }
 
        @Override
@@ -452,6 +453,11 @@ public class EverFolderActivity extends BaseActivity {
                                dst = dao.searchById(dstId);
                        }
 
+                       if (dstId == src.getParent()){
+                               // 同じ場所に移動
+                               return;
+                       }
+                       
                        Node sp = dao.searchById(src.getParent());
                        if (sp == null) {
                                // TODO
@@ -516,6 +522,9 @@ public class EverFolderActivity extends BaseActivity {
                NodeDao dao = (NodeDao) NodeDao.getInstance();
 
                Node node = dao.searchById(id);
+               if (node == null){
+                       // TODO
+               }
                node.toggleStatus();
                Status status = node.getStatus();
 
index f5b8468..31f17ca 100644 (file)
@@ -24,7 +24,7 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
        private LabelIconView selectedTarget = null;
        private LabelIconView cutTarget = null;
        private List<LabelIconView> labelIconViewList = new ArrayList<LabelIconView>();
-       
+
        private Animation anime;
        private int currentX;
        private int currentY;
@@ -49,7 +49,7 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
        public void setActivity(EverFolderActivity activity) {
                this.activity = activity;
        }
-       
+
        @Override
        protected void onLayout(boolean changed, int left, int top, int right,
                        int bottom) {
@@ -68,28 +68,36 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
        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;
                                }
@@ -97,9 +105,8 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
                }
                for (LabelIconView view : list) {
                        if (view != v) {
-                               view.getHitRect(rect);          
+                               view.getHitRect(rect);
                                if (rect.contains(x, y)) {
-                                       
                                        return view;
                                }
                        }
@@ -110,8 +117,8 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
        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) {
@@ -127,19 +134,19 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
                                // }
                                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);
@@ -147,28 +154,28 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
                                }
                        }
                }
-               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 {
@@ -180,49 +187,48 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
 
                        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);
@@ -235,8 +241,6 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
 
                                currentX -= diffX;
                                currentY -= diffY;
-                               // currentX = x;;
-                               // currentY = y;
                                obj.layout(currentX, currentY, currentX + obj.getWidth(),
                                                currentY + obj.getHeight());
 
@@ -245,61 +249,64 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
 
                                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;
@@ -310,8 +317,9 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
                                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;
 
@@ -330,14 +338,14 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
                                        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();
@@ -345,7 +353,7 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
 
                                longClickFlg = false;
                        }
-                       
+
                        return super.onTouchEvent(event);
                } catch (Exception e) {
                        e.printStackTrace();
@@ -358,16 +366,16 @@ public class IconFrameLayout extends FrameLayout implements OnLongClickListener
                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;
        }
index d41b47b..ae60382 100644 (file)
@@ -4,23 +4,7 @@ import android.content.Context;
 import android.widget.ImageView;
 
 public class IconImageView extends ImageView {
-//     private int initX = 0;
-//     private int initY = 0;
-
        public IconImageView(Context context) {
                super(context);
        }
-
-//     public void init(int x, int y) {
-//             initX = x;
-//             initY = y;
-//     }
-//
-//     public int getInitX() {
-//             return initX;
-//     }
-//
-//     public int getInitY() {
-//             return initY;
-//     }
 }
index fab9244..f09a26f 100644 (file)
@@ -3,21 +3,20 @@ package com.yuji.ef;
 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);
@@ -31,6 +30,9 @@ public class LabelIconView extends LinearLayout {
                init(x, y);
                Context context = this.getContext();
 
+               if (statusImageView != null) {
+                       this.removeView(statusImageView);
+               }
                if (imageView != null) {
                        this.removeView(imageView);
                }
@@ -41,7 +43,7 @@ public class LabelIconView extends LinearLayout {
                // TODO
                if (bmp1 != null) {
                        statusImageView = new StatusIconView(context, this);
-                       //statusImageView.setImageBitmap(bmp1);
+                       statusImageView.init(0, 0, null, bmp1, null);
                }
 
                imageView = new ImageView(context);
@@ -51,15 +53,31 @@ public class LabelIconView extends LinearLayout {
                        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);
                }
        }
index 5ca668e..7a292af 100644 (file)
@@ -11,7 +11,6 @@ public class StatusIconView extends LabelIconView {
                this.root = root;
        }
 
-       @Override
        public long getNodeId() {
                return -1;
        }       
index b1b9cc0..6eea6ef 100644 (file)
@@ -9,7 +9,7 @@ public class Node {
                NONE, OPEN, CLOSE
        };
 
-       private long id;
+       private long id = -1;
        // private Node parent = null;
        private long parent = -1;
        protected String guid = null;
@@ -41,9 +41,9 @@ public class Node {
                this.name = name;
                this.view = view;
 
-               if (view != null) {
-                       view.setNodeId(this.getId());
-               }
+//             if (view != null) {
+//                     view.setNodeId(this.getId());
+//             }
        }
 
        public int getType() {
@@ -52,9 +52,9 @@ public class Node {
 
        public void setView(LabelIconView view) {
                this.view = view;
-               if (view != null) {
-                       view.setNodeId(this.getId());
-               }
+//             if (view != null) {
+//                     view.setNodeId(this.getId());
+//             }
        }
 
        public long getId() {