From 3bbe6867b5d59e5eb2b163c4d23db699770e3057 Mon Sep 17 00:00:00 2001 From: Alexander Lobas Date: Thu, 17 May 2012 15:07:18 +0400 Subject: [PATCH] TabHost --- .../AndroidDesignerEditorPanel.java | 74 +----------------- .../android/designer/icons/TabHost.png | Bin 0 -> 1216 bytes .../android/designer/icons/TabWidget.png | Bin 0 -> 1226 bytes .../android/designer/model/IdManager.java | 8 +- .../android/designer/model/ModelParser.java | 23 ++---- .../designer/model/RadViewComponent.java | 3 + .../designer/model/views-meta-model.xml | 59 ++++++++++++++ .../componentTree/ComponentTreeBuilder.java | 2 - .../designSurface/DesignerEditorPanel.java | 3 - 9 files changed, 78 insertions(+), 94 deletions(-) create mode 100644 plugins/android-designer/src/com/intellij/android/designer/icons/TabHost.png create mode 100644 plugins/android-designer/src/com/intellij/android/designer/icons/TabWidget.png diff --git a/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java b/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java index d585941bc9e2..676a3e3f970f 100644 --- a/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java +++ b/plugins/android-designer/src/com/intellij/android/designer/designSurface/AndroidDesignerEditorPanel.java @@ -16,7 +16,6 @@ package com.intellij.android.designer.designSurface; import com.android.ide.common.rendering.api.RenderSession; -import com.android.ide.common.rendering.api.Result; import com.android.ide.common.resources.configuration.*; import com.android.sdklib.IAndroidTarget; import com.intellij.android.designer.actions.ProfileAction; @@ -24,11 +23,13 @@ import com.intellij.android.designer.componentTree.AndroidTreeDecorator; import com.intellij.android.designer.model.ModelParser; import com.intellij.android.designer.model.PropertyParser; import com.intellij.android.designer.model.RadViewComponent; -import com.intellij.android.designer.model.viewAnimator.RadViewAnimatorLayout; import com.intellij.android.designer.profile.ProfileManager; import com.intellij.designer.DesignerToolWindowManager; import com.intellij.designer.componentTree.TreeComponentDecorator; -import com.intellij.designer.designSurface.*; +import com.intellij.designer.designSurface.ComponentDecorator; +import com.intellij.designer.designSurface.DesignerEditorPanel; +import com.intellij.designer.designSurface.EditOperation; +import com.intellij.designer.designSurface.OperationContext; import com.intellij.designer.designSurface.selection.NonResizeSelectionDecorator; import com.intellij.designer.designSurface.tools.ComponentCreationFactory; import com.intellij.designer.designSurface.tools.ComponentPasteFactory; @@ -38,7 +39,6 @@ import com.intellij.openapi.application.ApplicationManager; import com.intellij.openapi.application.ex.ApplicationManagerEx; import com.intellij.openapi.module.Module; import com.intellij.openapi.util.Computable; -import com.intellij.openapi.util.Condition; import com.intellij.openapi.util.text.StringUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.psi.PsiFile; @@ -57,7 +57,6 @@ import org.jetbrains.annotations.NotNull; import javax.swing.*; import java.awt.*; -import java.lang.reflect.Method; import java.util.List; /** @@ -112,71 +111,6 @@ public final class AndroidDesignerEditorPanel extends DesignerEditorPanel { }); } - @Override - public void updateTreeArea(EditableArea area) { - area.addSelectionListener(new ComponentSelectionListener() { - @Override - public void selectionChanged(EditableArea area) { - List selection = area.getSelection(); - if (selection.size() == 1) { - final RadComponent component = selection.get(0); - final RadComponent parent = component.getParent(); - if (parent instanceof RadViewComponent && parent.getLayout() instanceof RadViewAnimatorLayout) { - ApplicationManager.getApplication().invokeLater( - new Runnable() { - @Override - public void run() { - try { - int index = parent.getChildren().indexOf(component); - Object parentView = - ((RadViewComponent)parent).getViewInfo().getViewObject(); - Method method = - parentView.getClass().getMethod("setDisplayedChild", int.class); - method.invoke(parentView, index); - - Result result = mySession.render(); - - // XXX - - if (!result.isSuccess()) { - System.out.println( - "No re render session: " + - result.getErrorMessage() + - " : " + - result.getStatus() + - " : " + - result.getData() + - " : " + - result.getException()); - } - else { - RadViewComponent rootComponent = (RadViewComponent)myRootComponent; - RootView rootView = (RootView)rootComponent.getNativeComponent(); - rootView.setImage(mySession.getImage()); - ModelParser.updateRootComponent(rootComponent, mySession, rootView); - - myLayeredPane.revalidate(); - - DesignerToolWindowManager.getInstance(getProject()).refresh(true); - } - } - catch (Throwable e) { - showError("Render error", e); - } - } - }, new Condition() { - @Override - public boolean value(Object o) { - return mySession == null; - } - } - ); - } - } - } - }); - } - private void reparseFile() { try { storeState(); diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/TabHost.png b/plugins/android-designer/src/com/intellij/android/designer/icons/TabHost.png new file mode 100644 index 0000000000000000000000000000000000000000..9153a884797a256096e02554c0505b15f7927076 GIT binary patch literal 1216 zcmbVMYiJZ#6rMD(4Jolpq=hQ#bb?T|J9F=5XJ=>FQD%2`ldWzHo8313Q=H7)?2emx zICJA}LW@)gQkq(%NL#3=t%Bea#8NF*kXmf%A0ucVP;6_h!L~{9Pg?}Nlk7$d!5y#O9>D$15Uy$-q7=g! zM0D2DN+^#sV|43RC_z!pWwS7V2XY%F-LY6L&|zzqOVAXRSYLBBy@D`3h)Sj{Gt-}) zXK2%qnV0z-$hj$0HhacA)IZi+(8nseXfW&7(TSQw3|I(jbj=#JeW@lhvvwu255ycp z&#K^x%*+Kfkn5vUj)!QT1z{b;ARUXcFbc$|_yQdP5O6TU0U->5#0wIDbp2t7H_sT7 z@@l5;i=1SpjIk?mT(w$dt6i+)l{hGhA_pQ|BoZbXVSm)dS}kn*oec{r@^#O2vFX@! zU{M=%MzG9~Nas?p++1$nuLMXf?Sjfg%Rc6QyYnTS1C=MVLqCkj%SR6tz+NCHN zRZOWs5fuQ8`!MvW6jo4!>>vF*0JeF zVx^RaH0*c<#~E&PKwsIxj$d|MI@Qm!kj`nkX$O*^Ky&%3$TPPgBjY(1JR99du*Q*KxS%~AYL|wH^kA@^Z+>!^A0K3sneoVQbbhE@ zBZKv4R#ghM?|D_QCDs^jUjPh3h=|Y2+!FGrzfW!$m8uzxu-` z{?xhcZ@l&VPx5Ym*91)O<;`Q`mtX&D$LWrvYY*ACo|!B!DxUdy(Z}7_r~WyH>33T0wgGC*o^!=3<3e}v OPsyfx)#J&{JMIIlgPKJE literal 0 HcmV?d00001 diff --git a/plugins/android-designer/src/com/intellij/android/designer/icons/TabWidget.png b/plugins/android-designer/src/com/intellij/android/designer/icons/TabWidget.png new file mode 100644 index 0000000000000000000000000000000000000000..7992fa2d3c126e03670317a4674613e096f66c96 GIT binary patch literal 1226 zcmbVMYiJx*6dqb5HQSU*L8y;7PASEhow;|jvy&OK#@U_Sc563=&7x}ww0CFjW`|@R zote0kR52C_rWL{JpNKz#2Hy>fprvX^T7|ZV52&<3p(tV~Ev7B)j}}_$on$w*5c_4X3z21`mnwKYR>`X%2UD_U z6)~MLP#?}=qz&yki90B2by?3Byh3(|q*?}x0v*;jY=Wk!j!xf3YCrbqBJR`8ICJrv z8HU!iIP*N81z9_Z%lfuq2lotj<<;SSRn(Zyr|1q}A_ffXA=);o~! z(2FWwf1Ftgs*vrbla_;No&{kQ#2_7uvM>t7sMtzJ00bP2a6kw{An}3(AYFSH;?2=Y zQcg+Ne34U}DSMtRaa^TRVJmH{<@9k-6h#h1xJV>SG{WwX=^;OCx|`}26zr;wZhN|A z(t$-(vcI%r_i%P4V%+_0Li5sKOYghCVu5fE#KP>i<8 za#|6S3Xnw^#OgLy!a^l2!kE&=i-G`Q3byl+L;~`F7nO8cR#J6r#&kVos<`e~Cw^<# z$X&5g(!t2HoV;ZX)H|TNY7rd=>2IFJdk2SO&ewu%xdL z0f^q2xttJ^$u0Yocy(-k@47R4{nr{` zFW7VbqeHnjdgTkD{U81@J@tP1;jK#Zs97C7aN3?5X?`*{awd1FH?;86>95~xP95o7 zFhBn4hv}iCt").toString(); } - }, false); + }); XmlTag xmlTag = component.getTag(); List children = component.getChildren(); @@ -284,8 +282,7 @@ public class ModelParser extends XmlRecursiveElementVisitor { public static void addComponentTag(final XmlTag parentTag, final RadViewComponent component, final XmlTag nextTag, - final Computable tagBuilder, - final boolean createId) { + final Computable tagBuilder) { ApplicationManager.getApplication().runWriteAction(new Runnable() { @Override public void run() { @@ -323,10 +320,6 @@ public class ModelParser extends XmlRecursiveElementVisitor { } component.setTag(xmlTag); - - if (createId) { - component.ensureId(); - } } }); } diff --git a/plugins/android-designer/src/com/intellij/android/designer/model/RadViewComponent.java b/plugins/android-designer/src/com/intellij/android/designer/model/RadViewComponent.java index b7dbce9d9545..022437d0035b 100644 --- a/plugins/android-designer/src/com/intellij/android/designer/model/RadViewComponent.java +++ b/plugins/android-designer/src/com/intellij/android/designer/model/RadViewComponent.java @@ -92,6 +92,9 @@ public class RadViewComponent extends RadVisualComponent { if (StringUtil.isEmpty(idValue)) { return null; } + if (idValue.startsWith("@android:id/")) { + return idValue; + } return "@id/" + idValue.substring(idValue.indexOf('/') + 1); } diff --git a/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml b/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml index 300c0ad11702..8705708dd998 100644 --- a/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml +++ b/plugins/android-designer/src/com/intellij/android/designer/model/views-meta-model.xml @@ -1230,6 +1230,64 @@ + + + + + + + + + + + + + + + + + + + + ]]> + + + + + + + + + + @@ -1283,6 +1341,7 @@ + diff --git a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/componentTree/ComponentTreeBuilder.java b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/componentTree/ComponentTreeBuilder.java index 7e65f3946825..90ba8e957d45 100644 --- a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/componentTree/ComponentTreeBuilder.java +++ b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/componentTree/ComponentTreeBuilder.java @@ -45,8 +45,6 @@ public final class ComponentTreeBuilder extends AbstractTreeBuilder implements C new TreeDropListener(tree, myTreeArea, designer.getToolProvider()); - designer.updateTreeArea(myTreeArea); - selectFromSurface(); expandFromState(); diff --git a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java index df72fee777aa..123c06d9be67 100644 --- a/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java +++ b/plugins/ui-designer/ui-designer-new/src/com/intellij/designer/designSurface/DesignerEditorPanel.java @@ -637,9 +637,6 @@ public abstract class DesignerEditorPanel extends JPanel implements DataProvider public abstract String getPlatformTarget(); - public void updateTreeArea(EditableArea area) { - } - protected abstract ComponentDecorator getRootSelectionDecorator(); @Nullable