├── LICENSE ├── README.md ├── dist └── DroidUIBuilder.jar ├── preview └── preview_20150203.png ├── screenshots ├── 2012-11-09_1_original.PNG ├── 2012-11-09_2.PNG ├── 2012-11-12.PNG ├── 2012-11-14.PNG ├── 2012-11-15.PNG ├── 2012-11-16_r21.PNG ├── 2012-11-16_r23.PNG ├── 2012-11-17+17-25_1.PNG ├── 2012-11-17+21-00_2.PNG ├── 2012-11-22.PNG ├── 2012-11-23_1.PNG ├── 2012-11-24_1.PNG ├── 2012-11-24_2.PNG ├── 2012-11-26_1.PNG ├── 2012-11-28_1.PNG ├── 2012-12-03.PNG ├── 2012-12-04.PNG └── 2015-02-03.png └── src_all └── DriodUIBuilder ├── lib ├── beautyeye_lnf.jar ├── commons-lang-2.5.jar └── macify-1.1.jar └── src ├── com └── jb2011 │ └── drioduibuilder │ ├── swingw │ ├── ETitledLine.java │ ├── HardLayoutPane.java │ ├── IconFactory.java │ ├── LaconicTip.java │ ├── NPIconFactory.java │ ├── SwitchablePane.java │ ├── border │ │ └── LaconicBorder.java │ └── imgs │ │ ├── laconic_tip_close_icon_normal.png │ │ ├── laconic_tip_close_icon_rover.png │ │ ├── np │ │ ├── switchable_btn_nornal.9.png │ │ ├── switchable_btn_pressed.9.png │ │ ├── switchable_next_normal.9.png │ │ ├── switchable_next_pressed.9.png │ │ ├── switchable_previous_normal.9.png │ │ └── switchable_previous_pressed.9.png │ │ └── switchable_btn_selected_flag.png │ └── util │ ├── FileHelper.java │ ├── NPComponentUtils.java │ ├── NinePatchIcon.java │ ├── Platform.java │ └── Utils.java ├── data ├── activity.zip └── activity │ ├── AndroidManifest.xml │ ├── build.xml │ ├── res │ ├── layout │ │ └── main.xml │ └── values │ │ └── strings.xml │ └── src │ └── org │ └── droiddraw │ └── DroidDrawActivity.java ├── org └── droiddraw │ ├── AndroidEditor.java │ ├── ImageLoader.java │ ├── Launch.java │ ├── MainPane.java │ ├── MakeArraysPane.java │ ├── MakeColorsPane.java │ ├── MakeLayoutPane.java │ ├── MakeStringsPane.java │ ├── deprecated │ ├── DroidDraw.java │ ├── JnlpMain.java │ └── URLOpener.java │ ├── gui │ ├── AbstractDataPanel.java │ ├── AndroidEditorViewer.java │ ├── ColorPanel.java │ ├── Desing$CodeSwitcherPane.java │ ├── DonatePanel.java │ ├── ImageResources.java │ ├── JAutoComboBox.java │ ├── JAutoTextField.java │ ├── MoveRecord.java │ ├── NineWayImage.java │ ├── Preferences.java │ ├── PreferencesPanel.java │ ├── PropertiesPanel.java │ ├── Undo24.gif │ ├── ViewerListener.java │ ├── WidgetAddRecord.java │ ├── WidgetDeleteRecord.java │ ├── WidgetPanel.java │ └── deprecated │ │ ├── AbstractWidgetPainter.java │ │ ├── LayoutPainter.java │ │ ├── ScrollViewPainter.java │ │ ├── WidgetPainter.java │ │ └── WidgetPaintersRegistry.java │ ├── property │ ├── BooleanProperty.java │ ├── ColorProperty.java │ ├── FloatProperty.java │ ├── ImageProperty.java │ ├── IntProperty.java │ ├── Property.java │ ├── SelectProperty.java │ ├── StringProperty.java │ └── WidthProperty.java │ ├── resource │ ├── FontObjectFactory.java │ ├── IconFactory.java │ ├── WidgetDefaultNPIconFactory.java │ ├── font │ │ ├── DroidSans.ttf │ │ └── DroidSansMono.ttf │ └── imgs │ │ ├── AbsoluteLayout.png │ │ ├── FrameLayout.png │ │ ├── GridView.png │ │ ├── ListView.png │ │ ├── RelativeLayout.png │ │ ├── ScrollView.png │ │ ├── TableLayout.png │ │ ├── TableRow.png │ │ ├── VerticalLinearLayout.png │ │ ├── d$cswitcher_bg_1_20121117.png │ │ ├── d$cswitcher_bg_2_20121117.png │ │ ├── default │ │ └── np │ │ │ ├── btn_default_normal.9.png │ │ │ ├── btn_dropdown_normal.9.png │ │ │ ├── eacher_round_bg.9.png │ │ │ ├── editbox_background_normal.9.png │ │ │ ├── tab_normal.9.png │ │ │ └── text_view_in_tool_bg.9.png │ │ ├── make_layout_head_flag.png │ │ ├── navigate_tool_decorated_android_logo.png │ │ └── navigate_tool_hot.png │ ├── util │ ├── ArrayHandler.java │ ├── ColorHandler.java │ ├── DisplayMetrics.java │ ├── DroidDrawHandler.java │ ├── FileCopier.java │ ├── FileFilterExtension.java │ ├── LayoutUploader.java │ └── StringHandler.java │ └── widget │ ├── AbsoluteLayout.java │ ├── AbstractLayout.java │ ├── AbstractWidget.java │ ├── AnalogClock.java │ ├── AutoCompleteTextView.java │ ├── Button.java │ ├── CheckBox.java │ ├── CompoundButton.java │ ├── DatePicker.java │ ├── DigitalClock.java │ ├── EditView.java │ ├── FrameLayout.java │ ├── Gallery.java │ ├── GridView.java │ ├── ImageButton.java │ ├── ImageSwitcher.java │ ├── ImageView.java │ ├── Layout.java │ ├── LayoutEnumeration.java │ ├── LayoutTreeNode.java │ ├── LinearLayout.java │ ├── ListView.java │ ├── MapView.java │ ├── ProgressBar.java │ ├── RadioButton.java │ ├── RadioGroup.java │ ├── RatingBar.java │ ├── RelativeLayout.java │ ├── ScrollView.java │ ├── Spinner.java │ ├── TabHost.java │ ├── TabWidget.java │ ├── TableLayout.java │ ├── TableRow.java │ ├── TextView.java │ ├── Ticker.java │ ├── TimePicker.java │ ├── ToggleButton.java │ ├── View.java │ ├── Widget.java │ ├── WidgetTransferable.java │ ├── WidgetTreeModel.java │ └── WidgetTreeNode.java ├── strings.xml └── ui ├── background_01p.png ├── date_picker.png ├── date_picker_small.png ├── def ├── btn_check_off.png ├── btn_check_on.png ├── btn_radio_off.png ├── btn_radio_on.png ├── btn_toggle_off.9.png ├── btn_toggle_on.9.png ├── progress_wheel_medium.png ├── radio_group.png └── 备选 │ ├── btn_check_off.png │ ├── btn_check_on.png │ ├── btn_default_normal.9.png │ ├── btn_default_small_normal.9.png │ ├── btn_dropdown_neither.9.png │ ├── btn_dropdown_normal.9.png │ ├── btn_radio_off.png │ ├── btn_radio_on.png │ ├── progress_wheel_large.png │ ├── radio_group.png │ ├── radio_group_0.png │ ├── spinner_normal.9.png │ ├── tab_selected.9.png │ ├── textfield.9.png │ └── textfield_default.9.png ├── droiddraw_small.png ├── editor_content_bg.png ├── emu1.png ├── emu2.png ├── emu3.png ├── emu4.png ├── emu5.png ├── emu6.png ├── gallery.png ├── gridview_small.png ├── light ├── button_background_normal.9.png ├── checkbox_off_background.png ├── checkbox_on_background.png ├── clock_dial.png ├── clock_hand_hour.png ├── clock_hand_minute.png ├── editbox_background_normal.9.png ├── progress_circular_background.png ├── progress_circular_indeterminate.png ├── progress_particle.png ├── radiobutton_off_background.png ├── radiobutton_on_background.png ├── spinnerbox_arrow_middle.9.png └── spinnerbox_background_focus_yellow.9.png ├── listview_small.png ├── mapview.png ├── mdpi └── textfield_default.9.png ├── paint.png ├── paypal.png ├── rate_star_big_half.png ├── rate_star_big_off.png ├── rate_star_big_on.png ├── rate_star_small_on.png ├── scrollbar.9.png ├── scrollfield.9.png ├── stat_sys_battery_100.png ├── stat_sys_battery_charge_100.png ├── stat_sys_data_connected.png ├── stat_sys_signal_3.png ├── stat_sys_time_img.png ├── stat_sys_title_text_img.png ├── statusbar_background_l.png ├── statusbar_background_p.png ├── time_picker.png ├── time_picker_small.png └── title_bar.9.png /README.md: -------------------------------------------------------------------------------- 1 | # 关于 2 | DroidUIBuilder是一个Andriod GUI设计工具,因种种原因已于2012年12月停止开发。
3 | DroidUIBuilder工程目前仅作为 **[:octocat: BeautyEye工程](https://github.com/JackJiang2011/beautyeye)** 的Java Swing界面美化案例而存在。 4 | 5 | # 工程前身 6 | DroidUIBuilder工程原始代码来自于开源工程[DroidDraw](https://code.google.com/p/droiddraw/),感谢原作者。 7 | 8 | # 当前意义 9 | DroidUIBuilder已停止开发,因而功能上已无太多价值,但它或许可给Java Swing爱好者带来GUI界面改进的一些灵感。
10 |
11 | DroidUIBuilder的界面美化过程(对比原工程DroidDraw),实际就是一传统而丑陋的界面程序的美化演进案例(希望原作者原谅,DroidUIBuilder的界面虽仍不算完美,但原版DroidDraw确实是又丑又乱 :trollface: )。 12 | 13 | # 下载 14 | :paperclip: [点击下载,完成后双击执行即可](https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/master/dist/DroidUIBuilder.jar) 15 | 16 | # 界面美化对照 17 | ### :sob: 原版DroidDraw界面 18 | ![](https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/master/screenshots/2012-11-09_1_original.PNG) 19 | 20 | ### :grinning: 美化后的DroidUIBuilder界面 21 | ![](https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/master/preview/preview_20150203.png) 22 | 23 | # 界面美化日记 24 | :ledger: 以下链接记录了DroidUIBuilder的界面美化过程,[点击查看详细](https://github.com/JackJiang2011/DroidUIBuilder/wiki/DroidUIBuilder%E7%95%8C%E9%9D%A2%E7%BE%8E%E5%8C%96%E6%97%A5%E8%AE%B0) 25 | 26 | ## 联系方式 27 | * 如有建议等,请邮件至::love_letter: `jb2011@163.com`; 28 | * 欢迎加入Java Swing爱好者讨论QQ群:`259448663` Java Swing技术交流; 29 | * 也可联系作者QQ::penguin: `413980957`; 30 | * 你也可前往 [Jack Jiang的微博](http://t.qq.com/jackjiang_is_here/) 进行交流。 31 | 32 | ## 关于作者 33 | ![](https://raw.githubusercontent.com/JackJiang2011/beautyeye/master/screenshots/js2.png)
34 | 计算机科学与技术本科,现从业于移动互联网和智能穿戴应用领域;
35 | > 职业生涯:程序员、项目经理、技术总监;
36 | > 编码技能:JavaME、JavaSE、JavaEE、Android、iOS等平台应用层开发;
37 | > 实践经验:多年的软件开发、项目管理、团队管理以及创业公司操盘经历,在软件开发体系和团队建设、项目开发和管理、中大型企业应用、移动互联网应用的持续开发/实施/集成/运维和信息化建设等方面拥有较丰富的实践经验,领域知识涉及传统企业桌面应用、企业分布式互联网应用、新一代移动互联网和智能穿戴应用等。 38 | 39 | ## 作者的其它工程 40 | * ![](https://raw.githubusercontent.com/JackJiang2011/beautyeye/master/screenshots/beautyeye_logo_h.png) 一款开源Java Swing外观(look and feel)实现,[:octocat: 点击进入](https://github.com/JackJiang2011/beautyeye)。
41 | * **Swing9patch**:一组很酷的Java Swing可重用组件或UI效果,[:octocat: 点击进入](https://github.com/JackJiang2011/Swing9patch)。
42 | -------------------------------------------------------------------------------- /dist/DroidUIBuilder.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/dist/DroidUIBuilder.jar -------------------------------------------------------------------------------- /preview/preview_20150203.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/preview/preview_20150203.png -------------------------------------------------------------------------------- /screenshots/2012-11-09_1_original.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-09_1_original.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-09_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-09_2.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-12.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-12.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-14.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-14.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-15.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-15.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-16_r21.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-16_r21.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-16_r23.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-16_r23.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-17+17-25_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-17+17-25_1.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-17+21-00_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-17+21-00_2.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-22.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-22.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-23_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-23_1.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-24_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-24_1.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-24_2.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-24_2.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-26_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-26_1.PNG -------------------------------------------------------------------------------- /screenshots/2012-11-28_1.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-11-28_1.PNG -------------------------------------------------------------------------------- /screenshots/2012-12-03.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-12-03.PNG -------------------------------------------------------------------------------- /screenshots/2012-12-04.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2012-12-04.PNG -------------------------------------------------------------------------------- /screenshots/2015-02-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/screenshots/2015-02-03.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/lib/beautyeye_lnf.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/lib/beautyeye_lnf.jar -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/lib/commons-lang-2.5.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/lib/commons-lang-2.5.jar -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/lib/macify-1.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/lib/macify-1.1.jar -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/IconFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * IconFactory.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package com.jb2011.drioduibuilder.swingw; 13 | 14 | import javax.swing.ImageIcon; 15 | 16 | import org.jb2011.lnf.beautyeye.utils.RawCache; 17 | 18 | /** 19 | * 普通图片工厂类. 20 | * 21 | * @author Jack Jiang 22 | * @version 1.0 23 | */ 24 | public class IconFactory extends RawCache 25 | { 26 | /** 相对路径根(默认是相对于本类的相对物理路径). */ 27 | public final static String IMGS_ROOT="imgs"; 28 | 29 | /** The instance. */ 30 | private static IconFactory instance = null; 31 | 32 | /** 33 | * Gets the single instance of __IconFactory__. 34 | * 35 | * @return single instance of __IconFactory__ 36 | */ 37 | public static IconFactory getInstance() 38 | { 39 | if(instance==null) 40 | instance = new IconFactory(); 41 | return instance; 42 | } 43 | 44 | /* (non-Javadoc) 45 | * @see org.jb2011.lnf.beautyeye.utils.RawCache#getResource(java.lang.String, java.lang.Class) 46 | */ 47 | @Override 48 | protected ImageIcon getResource(String relativePath, Class baseClass) 49 | { 50 | return new ImageIcon(baseClass.getResource(relativePath)); 51 | } 52 | 53 | /** 54 | * Gets the image. 55 | * 56 | * @param relativePath the relative path 57 | * @return the image 58 | */ 59 | public ImageIcon getImage(String relativePath) 60 | { 61 | return getRaw(relativePath,this.getClass()); 62 | } 63 | 64 | public ImageIcon getLaconicTipCloseIcon_normal() 65 | { 66 | return getImage(IMGS_ROOT+"/laconic_tip_close_icon_normal.png"); 67 | } 68 | public ImageIcon getLaconicTipCloseIcon_rover() 69 | { 70 | return getImage(IMGS_ROOT+"/laconic_tip_close_icon_rover.png"); 71 | } 72 | 73 | public ImageIcon getSwitchableBtnSelected_flag() 74 | { 75 | return getImage(IMGS_ROOT+"/switchable_btn_selected_flag.png"); 76 | } 77 | 78 | } 79 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/NPIconFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * NPIconFactory.java at 2015-2-6 16:12:01, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package com.jb2011.drioduibuilder.swingw; 13 | 14 | import org.jb2011.lnf.beautyeye.utils.NinePatchHelper; 15 | import org.jb2011.lnf.beautyeye.utils.RawCache; 16 | import org.jb2011.ninepatch4j.NinePatch; 17 | 18 | /** 19 | * Object factory of NinePatch pictures(*.9.png). 20 | * 21 | * @author Jack Jiang 22 | * @version 1.0 23 | */ 24 | public class NPIconFactory extends RawCache 25 | { 26 | /** root path(relative this NPIconFactory.class). */ 27 | public final static String IMGS_ROOT="imgs/np"; 28 | 29 | /** The instance. */ 30 | private static NPIconFactory instance = null; 31 | 32 | /** 33 | * Gets the single instance of __Icon9Factory__. 34 | * 35 | * @return single instance of __Icon9Factory__ 36 | */ 37 | public static NPIconFactory getInstance() 38 | { 39 | if(instance==null) 40 | instance = new NPIconFactory(); 41 | return instance; 42 | } 43 | 44 | /* (non-Javadoc) 45 | * @see org.jb2011.lnf.beautyeye.utils.RawCache#getResource(java.lang.String, java.lang.Class) 46 | */ 47 | @Override 48 | protected NinePatch getResource(String relativePath, Class baseClass) 49 | { 50 | return NinePatchHelper.createNinePatch(baseClass.getResource(relativePath), false); 51 | } 52 | 53 | /** 54 | * Gets the raw. 55 | * 56 | * @param relativePath the relative path 57 | * @return the raw 58 | */ 59 | public NinePatch getRaw(String relativePath) 60 | { 61 | return getRaw(relativePath,this.getClass()); 62 | } 63 | 64 | public NinePatch getSwitchable_btn_nornal() 65 | { 66 | return getRaw(IMGS_ROOT+"/switchable_btn_nornal.9.png"); 67 | } 68 | public NinePatch getSwitchable_btn_pressed() 69 | { 70 | return getRaw(IMGS_ROOT+"/switchable_btn_pressed.9.png"); 71 | } 72 | public NinePatch getSwitchable_next_normal() 73 | { 74 | return getRaw(IMGS_ROOT+"/switchable_next_normal.9.png"); 75 | } 76 | public NinePatch getSwitchable_previous_normal() 77 | { 78 | return getRaw(IMGS_ROOT+"/switchable_previous_normal.9.png"); 79 | } 80 | 81 | public NinePatch getSwitchable_next_pressed() 82 | { 83 | return getRaw(IMGS_ROOT+"/switchable_next_pressed.9.png"); 84 | } 85 | public NinePatch getSwitchable_previous_pressed() 86 | { 87 | return getRaw(IMGS_ROOT+"/switchable_previous_pressed.9.png"); 88 | } 89 | } -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/border/LaconicBorder.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * LaconicBorder.java at 2015-2-6 16:12:01, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package com.jb2011.drioduibuilder.swingw.border; 13 | 14 | import java.awt.BasicStroke; 15 | import java.awt.Color; 16 | import java.awt.Component; 17 | import java.awt.Graphics; 18 | import java.awt.Graphics2D; 19 | import java.awt.Insets; 20 | import java.awt.Stroke; 21 | 22 | import javax.swing.border.AbstractBorder; 23 | /** 24 | * 一个ui很起来很简洁的顶部单条水平虚线样式的border实现类. 25 | * 26 | * TODO 此类可进一步完善——可以4个方向上机动组合框的绘制设置哦,目前只支持顶部横线样式. 27 | */ 28 | public class LaconicBorder extends AbstractBorder 29 | { 30 | /** 31 | * Instantiates a new demo panel border. 32 | */ 33 | public LaconicBorder() { 34 | } 35 | 36 | /* (non-Javadoc) 37 | * @see javax.swing.border.AbstractBorder#paintBorder(java.awt.Component, java.awt.Graphics, int, int, int, int) 38 | */ 39 | public void paintBorder(Component c, Graphics g, int x, int y, 40 | int width, int height) 41 | { 42 | //** 绘制border的底线 43 | //虚线样式 44 | Stroke oldStroke = ((Graphics2D)g).getStroke(); 45 | Stroke sroke = new BasicStroke(1, BasicStroke.CAP_BUTT, 46 | BasicStroke.JOIN_BEVEL, 0, new float[]{1, 2}, 0);//实线,空白 47 | ((Graphics2D)g).setStroke(sroke); 48 | 49 | //--------------------------------------------------------------------------------- 顶水平线绘制 50 | //底边上(浅灰色) 51 | g.setColor(new Color(200,200,200)); 52 | g.drawLine(x,0, width-1,0); // draw bottom1 53 | //底边下(白色):绘制一条白色虚线的目的是与上面的灰线产生较强对比度从而形成立体效果 54 | //,本L&F实现中因与Panel的底色对比度不够强烈而立体感不明显(颜色越深的底色最终效果越明显) 55 | g.setColor(Color.white); 56 | g.drawLine(x,1, width-1,1);//draw bottom2 57 | 58 | // //--------------------------------------------------------------------------------- 底水平线绘制 59 | // //底边上(浅灰色) 60 | // g.setColor(new Color(200,200,200)); 61 | // g.drawLine(x,height-2, width-1,height-2); // draw bottom1 62 | // //底边下(白色):绘制一条白色虚线的目的是与上面的灰线产生较强对比度从而形成立体效果 63 | // //,本L&F实现中因与Panel的底色对比度不够强烈而立体感不明显(颜色越深的底色最终效果越明显) 64 | // g.setColor(Color.white); 65 | // g.drawLine(x,height-1, width-1,height-1);//draw bottom2 66 | 67 | ((Graphics2D)g).setStroke(oldStroke); 68 | } 69 | 70 | //border只有底边,且高度为2像素 71 | /* (non-Javadoc) 72 | * @see javax.swing.border.AbstractBorder#getBorderInsets(java.awt.Component) 73 | */ 74 | public Insets getBorderInsets(Component c) { 75 | return new Insets(2,0,0,0); 76 | } 77 | 78 | /* (non-Javadoc) 79 | * @see javax.swing.border.AbstractBorder#getBorderInsets(java.awt.Component, java.awt.Insets) 80 | */ 81 | public Insets getBorderInsets(Component c, Insets insets) { 82 | return getBorderInsets(c);//insets; 83 | } 84 | } -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/laconic_tip_close_icon_normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/laconic_tip_close_icon_normal.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/laconic_tip_close_icon_rover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/laconic_tip_close_icon_rover.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_btn_nornal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_btn_nornal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_btn_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_btn_pressed.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_next_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_next_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_next_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_next_pressed.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_previous_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_previous_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_previous_pressed.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/np/switchable_previous_pressed.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/switchable_btn_selected_flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/swingw/imgs/switchable_btn_selected_flag.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/util/FileHelper.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * FileHelper.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package com.jb2011.drioduibuilder.util; 13 | 14 | import java.io.File; 15 | import java.io.FileInputStream; 16 | import java.io.FileOutputStream; 17 | import java.io.IOException; 18 | 19 | public class FileHelper 20 | { 21 | public static void copy(File from, File to) 22 | throws IOException 23 | { 24 | FileInputStream fis = new FileInputStream(from); 25 | FileOutputStream fos = new FileOutputStream(to); 26 | 27 | byte[] buffer = new byte[4096]; 28 | int rd = fis.read(buffer); 29 | while (rd != -1) 30 | { 31 | fos.write(buffer, 0, rd); 32 | rd = fis.read(buffer); 33 | } 34 | fos.flush(); 35 | fos.close(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/util/NPComponentUtils.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * NPComponentUtils.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package com.jb2011.drioduibuilder.util; 13 | 14 | import java.awt.Color; 15 | import java.awt.Font; 16 | import java.awt.Graphics; 17 | import java.awt.Graphics2D; 18 | import java.awt.Insets; 19 | 20 | import javax.swing.BorderFactory; 21 | import javax.swing.JLabel; 22 | import javax.swing.JPanel; 23 | 24 | import org.jb2011.ninepatch4j.NinePatch; 25 | 26 | public class NPComponentUtils 27 | { 28 | 29 | 30 | /** 31 | * Creates a new N9Component object. 32 | * 33 | * @param is the is 34 | * @return the image bg panel 35 | */ 36 | public static JPanel createPanel_root(final NinePatch n9,Insets is) 37 | { 38 | JPanel p = new JPanel(){ 39 | public void paintChildren(Graphics g) 40 | { 41 | if(n9 != null) 42 | n9.draw((Graphics2D)g, 0, 0, this.getWidth(), this.getHeight()); 43 | super.paintChildren(g); 44 | } 45 | }; 46 | if(is != null) 47 | p.setBorder(BorderFactory.createEmptyBorder(is.top,is.left,is.bottom,is.right)); 48 | return p; 49 | } 50 | 51 | /** 52 | * Creates a new N9Component object. 53 | * 54 | * @param text the text 55 | * @param n9 the n9 56 | * @param is the is 57 | * @param foregroundColor the foreground color 58 | * @param f the f 59 | * @return the j label 60 | */ 61 | public static JLabel createLabel_root(String text 62 | , final NinePatch n9, Insets is 63 | , Color foregroundColor, Font f) 64 | { 65 | JLabel l = new JLabel(text){ 66 | public void paintComponent(Graphics g) { 67 | n9.draw((Graphics2D)g, 0, 0, this.getWidth(), this.getHeight()); 68 | super.paintComponent(g); 69 | } 70 | }; 71 | if(is != null) 72 | l.setBorder(BorderFactory.createEmptyBorder(is.top, is.left, is.bottom, is.right)); 73 | if(foregroundColor != null) 74 | l.setForeground(foregroundColor); 75 | if(f != null) 76 | l.setFont(f); 77 | 78 | return l; 79 | } 80 | 81 | } 82 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/com/jb2011/drioduibuilder/util/NinePatchIcon.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * NinePatchIcon.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package com.jb2011.drioduibuilder.util; 13 | 14 | import java.awt.Component; 15 | import java.awt.Graphics; 16 | import java.awt.Graphics2D; 17 | import java.awt.image.BufferedImage; 18 | import java.net.URL; 19 | 20 | import javax.swing.Icon; 21 | 22 | import org.jb2011.ninepatch4j.NinePatch; 23 | 24 | /** 25 | * Android平台的9patch图实现的可自动拉伸的Icon类. 26 | * 27 | * @author js, 2011-12-22 28 | * @version 1.0 29 | * @see NinePatch 30 | */ 31 | public class NinePatchIcon implements Icon 32 | { 33 | /** 默认绘制区域的宽度,默认是16 */ 34 | private int width = 0; 35 | /** 默认绘制区域的高度,默认是16 */ 36 | private int height = 0; 37 | /** android平台类似的9patch图片实例 */ 38 | private NinePatch ninePatch; 39 | 40 | public NinePatchIcon() 41 | { 42 | } 43 | 44 | public NinePatchIcon(int width, int height, URL imageFileUrl) throws Exception 45 | { 46 | this(width , height, NinePatch.load(imageFileUrl, false)); 47 | } 48 | 49 | public NinePatchIcon(int width, int height, BufferedImage image) 50 | { 51 | this(width , height, NinePatch.load(image, true, false)); 52 | } 53 | 54 | public NinePatchIcon(int width, int height, NinePatch mPatch) 55 | { 56 | this.width = width; 57 | this.height = height; 58 | this.ninePatch = mPatch; 59 | } 60 | 61 | public int getIconHeight() 62 | { 63 | return height; 64 | } 65 | 66 | public int getIconWidth() 67 | { 68 | return width; 69 | } 70 | 71 | public void paintIcon(Component c, Graphics g, int x, int y) 72 | { 73 | if(ninePatch != null) 74 | { 75 | Graphics2D g2 = (Graphics2D) g; 76 | ninePatch.draw(g2, x, y, getIconWidth(), getIconHeight()); 77 | } 78 | } 79 | 80 | public NinePatch getNinePatch() 81 | { 82 | return ninePatch; 83 | } 84 | public void setNinePatch(NinePatch ninePatch) 85 | { 86 | this.ninePatch = ninePatch; 87 | } 88 | public void setNinePatch(URL imageFileUrl) throws Exception 89 | { 90 | this.ninePatch = NinePatch.load(imageFileUrl, false); 91 | } 92 | public void setNinePatch(BufferedImage image) 93 | { 94 | this.ninePatch = NinePatch.load(image, true, false); 95 | } 96 | 97 | public void setIconWidth(int width) 98 | { 99 | this.width = width; 100 | } 101 | 102 | public void setIconHeight(int height) 103 | { 104 | this.height = height; 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/data/activity.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/data/activity.zip -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/data/activity/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/data/activity/res/layout/main.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 12 | 13 | 14 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/data/activity/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | DroidDrawActivity 4 | 5 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/data/activity/src/org/droiddraw/DroidDrawActivity.java: -------------------------------------------------------------------------------- 1 | // package org.droiddraw; 2 | // 3 | // import android.app.Activity; 4 | // import android.os.Bundle; 5 | // 6 | // public class DroidDrawActivity extends Activity 7 | // { 8 | // /** Called when the activity is first created. */ 9 | // @Override 10 | // public void onCreate(Bundle icicle) 11 | // { 12 | // super.onCreate(icicle); 13 | // setContentView(R.layout.main); 14 | // } 15 | // } 16 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/MakeArraysPane.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * MakeArraysPane.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw; 13 | 14 | import java.io.File; 15 | import java.io.FileWriter; 16 | import java.io.IOException; 17 | import java.util.ArrayList; 18 | import java.util.Collections; 19 | import java.util.Hashtable; 20 | import java.util.StringTokenizer; 21 | import java.util.Vector; 22 | 23 | import org.droiddraw.gui.AbstractDataPanel; 24 | import org.droiddraw.util.ArrayHandler; 25 | 26 | public class MakeArraysPane extends AbstractDataPanel 27 | { 28 | private static final long serialVersionUID = 1L; 29 | 30 | public MakeArraysPane() 31 | { 32 | super(new Class[] { String.class, String.class }); 33 | } 34 | 35 | @Override 36 | protected void addValue(String name) 37 | { 38 | AndroidEditor.instance().getArrays().put(name, new Vector()); 39 | } 40 | 41 | @Override 42 | protected void doSave() 43 | { 44 | File f = AndroidEditor.instance().getArrayFile(); 45 | try 46 | { 47 | if (f == null) 48 | { 49 | f = Launch.doSaveBasic(); 50 | } 51 | if (f != null) 52 | { 53 | FileWriter fw = new FileWriter(f); 54 | ArrayHandler.dump(fw, AndroidEditor.instance().getArrays()); 55 | fw.flush(); 56 | fw.close(); 57 | } 58 | } 59 | catch (IOException ex) 60 | { 61 | MainPane.getTipCom().error(ex); 62 | } 63 | } 64 | 65 | @Override 66 | protected void parentDeleteRow(int row) 67 | { 68 | String key = (String) parentValueAt(row, 0); 69 | Hashtable> arrays = AndroidEditor.instance() 70 | .getArrays(); 71 | arrays.remove(key); 72 | } 73 | 74 | @Override 75 | protected int parentRowCount() 76 | { 77 | Hashtable> arrays = AndroidEditor.instance() 78 | .getArrays(); 79 | return arrays.size(); 80 | } 81 | 82 | @Override 83 | protected void parentSetValueAt(Object value, int rowIndex, int columnIndex) 84 | { 85 | String key = (String) parentValueAt(rowIndex, 0); 86 | Hashtable> arrays = AndroidEditor.instance() 87 | .getArrays(); 88 | if (columnIndex == 1) 89 | { 90 | String val = (String) value; 91 | Vector data = arrays.get(key); 92 | data.clear(); 93 | StringTokenizer tok = new StringTokenizer(val, ","); 94 | while (tok.hasMoreTokens()) 95 | { 96 | data.add(tok.nextToken()); 97 | } 98 | arrays.put(key, data); 99 | } 100 | else 101 | { 102 | Vector val = arrays.get(key); 103 | arrays.remove(key); 104 | arrays.put((String) value, val); 105 | } 106 | } 107 | 108 | @Override 109 | protected Object parentValueAt(int row, int col) 110 | { 111 | Hashtable> arrays = AndroidEditor.instance() 112 | .getArrays(); 113 | ArrayList sorted = Collections.list(arrays.keys()); 114 | Collections.sort(sorted); 115 | 116 | if (col == 0) 117 | { 118 | return sorted.get(row); 119 | } 120 | else if (col == 1) 121 | { 122 | Vector data = arrays.get(sorted.get(row)); 123 | String res = ""; 124 | if (data.size() > 0) 125 | { 126 | res = data.get(0); 127 | for (int i = 1; i < data.size(); i++) 128 | { 129 | res = res + "," + data.get(i); 130 | } 131 | } 132 | return res; 133 | } 134 | return null; 135 | } 136 | 137 | } 138 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/MakeStringsPane.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * MakeStringsPane.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw; 13 | 14 | import java.io.File; 15 | import java.io.FileWriter; 16 | import java.io.IOException; 17 | import java.util.ArrayList; 18 | import java.util.Collections; 19 | import java.util.Hashtable; 20 | 21 | import javax.swing.DefaultCellEditor; 22 | import javax.swing.JTextField; 23 | 24 | import org.droiddraw.gui.AbstractDataPanel; 25 | import org.droiddraw.util.StringHandler; 26 | 27 | public class MakeStringsPane extends AbstractDataPanel 28 | { 29 | private static final long serialVersionUID = 1L; 30 | 31 | public MakeStringsPane() 32 | { 33 | super(new Class[] { String.class, String.class }); 34 | dataTable.getColumnModel().getColumn(0).setCellEditor( 35 | new DefaultCellEditor(new JTextField())); 36 | dataTable.getColumnModel().getColumn(1).setCellEditor( 37 | new DefaultCellEditor(new JTextField())); 38 | } 39 | 40 | @Override 41 | protected int parentRowCount() 42 | { 43 | Hashtable strings = AndroidEditor.instance() 44 | .getStrings(); 45 | if (strings != null) 46 | return strings.size(); 47 | return 0; 48 | } 49 | 50 | @Override 51 | protected Object parentValueAt(int row, int col) 52 | { 53 | Hashtable strings = AndroidEditor.instance() 54 | .getStrings(); 55 | ArrayList sorted = Collections.list(strings.keys()); 56 | Collections.sort(sorted); 57 | if (col == 0) 58 | { 59 | return sorted.get(row); 60 | } 61 | else if (col == 1) 62 | { 63 | return strings.get(sorted.get(row)); 64 | } 65 | return null; 66 | } 67 | 68 | @Override 69 | protected void parentSetValueAt(Object value, int rowIndex, int columnIndex) 70 | { 71 | String key = (String) parentValueAt(rowIndex, 0); 72 | Hashtable strings = AndroidEditor.instance() 73 | .getStrings(); 74 | if (columnIndex == 1) 75 | { 76 | strings.put(key, (String) value); 77 | } 78 | else 79 | { 80 | String val = strings.get(key); 81 | strings.remove(key); 82 | strings.put((String) value, val); 83 | } 84 | } 85 | 86 | @Override 87 | protected void parentDeleteRow(int row) 88 | { 89 | String key = (String) parentValueAt(row, 0); 90 | Hashtable strings = AndroidEditor.instance() 91 | .getStrings(); 92 | strings.remove(key); 93 | } 94 | 95 | @Override 96 | protected void doSave() 97 | { 98 | File out = AndroidEditor.instance().getStringFile(); 99 | if (out == null) 100 | { 101 | out = Launch.doSaveBasic(); 102 | } 103 | if (out != null) 104 | { 105 | try 106 | { 107 | StringHandler.dump(new FileWriter(out), AndroidEditor 108 | .instance().getStrings()); 109 | } 110 | catch (IOException ex) 111 | { 112 | MainPane.getTipCom().error(ex); 113 | } 114 | } 115 | } 116 | 117 | @Override 118 | protected void addValue(String name) 119 | { 120 | AndroidEditor.instance().getStrings().put(name, ""); 121 | } 122 | } 123 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/deprecated/DroidDraw.java: -------------------------------------------------------------------------------- 1 | package org.droiddraw.deprecated; 2 | //package org.droiddraw; 3 | // 4 | //import java.awt.BorderLayout; 5 | //import java.awt.Image; 6 | //import java.awt.MediaTracker; 7 | //import java.net.MalformedURLException; 8 | //import java.net.URL; 9 | // 10 | //import javax.swing.JApplet; 11 | //import javax.swing.UIManager; 12 | // 13 | //import org.droiddraw.gui.DroidDrawPanel; 14 | //import org.droiddraw.gui.ImageResources; 15 | //import org.droiddraw.gui.LayoutPainter; 16 | //import org.droiddraw.gui.ScrollViewPainter; 17 | //import org.droiddraw.gui.WidgetRegistry; 18 | //import org.droiddraw.widget.AbstractLayout; 19 | //import org.droiddraw.widget.Layout; 20 | //import org.droiddraw.widget.ScrollView; 21 | // 22 | ///** 23 | // * DroidDraw的Applet主类. 24 | // * 25 | // * 此类以后可以考虑删除,因为在Applet上运行本身就不实用,华而不实的东西完全可以无视之. 26 | // */ 27 | //public class DroidDraw extends JApplet implements URLOpener, 28 | // ImageLoader.ImageLoaderInterface 29 | //{ 30 | // private static final long serialVersionUID = 1L; 31 | // 32 | // protected static final void switchToLookAndFeel(String clazz) 33 | // { 34 | // try 35 | // { 36 | // UIManager.setLookAndFeel(clazz); 37 | // } 38 | // catch (Exception ex) 39 | // { 40 | // AndroidEditor.instance().error(ex); 41 | // } 42 | // } 43 | // 44 | // public void openURL(String url) 45 | // { 46 | // try 47 | // { 48 | // getAppletContext().showDocument(new URL(url), "_blank"); 49 | // } 50 | // catch (MalformedURLException ex) 51 | // { 52 | // AndroidEditor.instance().error(ex); 53 | // } 54 | // } 55 | // 56 | // protected static final void setupRootLayout(Layout l) 57 | // { 58 | // l.setPosition(AndroidEditor.OFFSET_X, AndroidEditor.OFFSET_Y); 59 | // l.setPropertyByAttName("android:layout_width", "fill_parent"); 60 | // l.setPropertyByAttName("android:layout_height", "fill_parent"); 61 | // l.apply(); 62 | // } 63 | // 64 | // MediaTracker md; 65 | // int ix; 66 | // 67 | // public void loadImage(String name) 68 | // { 69 | // Image img = getImage(getCodeBase(), "ui/" + name + ".png"); 70 | // md.addImage(img, ix++); 71 | // ImageResources.instance().addImage(img, name); 72 | // 73 | // } 74 | // 75 | // @Override 76 | // public void init() 77 | // { 78 | // super.init(); 79 | // AndroidEditor.instance().setURLOpener(this); 80 | // AndroidEditor.instance().getPropertiesPanel().setApplet(true); 81 | // 82 | // // This is so that I can test out the Google examples... 83 | // // START 84 | // /* 85 | // * if ("true".equals(this.getParameter("load_strings"))) { try { URL url 86 | // * = new URL(getCodeBase(), "strings.xml"); 87 | // * AndroidEditor.instance().setStrings 88 | // * (StringHandler.load(url.openStream())); } catch (Exception ex) { 89 | // * AndroidEditor.instance().error(ex); } } 90 | // */ 91 | // // END 92 | // 93 | // String screen = this.getParameter("Screen"); 94 | // if (screen == null) 95 | // { 96 | // screen = "hvgap"; 97 | // } 98 | // md = new MediaTracker(this); 99 | // ix = 0; 100 | // 101 | // ImageLoader.loadImages(this); 102 | // 103 | // for (int i = 0; i < ix; i++) 104 | // { 105 | // try 106 | // { 107 | // md.waitForID(i); 108 | // } 109 | // catch (InterruptedException ex) 110 | // { 111 | // } 112 | // } 113 | // 114 | // WidgetRegistry.registerPainter(AbstractLayout.class, 115 | // new LayoutPainter()); 116 | // WidgetRegistry.registerPainter(ScrollView.class, 117 | // new ScrollViewPainter()); 118 | // 119 | // setLayout(new BorderLayout()); 120 | // setSize(1024, 650); 121 | // add(new DroidDrawPanel(screen, true), BorderLayout.CENTER); 122 | // } 123 | //} 124 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/deprecated/JnlpMain.java: -------------------------------------------------------------------------------- 1 | package org.droiddraw.deprecated; 2 | //package org.droiddraw; 3 | // 4 | //import java.io.IOException; 5 | // 6 | //public class JnlpMain 7 | //{ 8 | // // Hacky main for JNLP version. Set --is_jnlp flag and then 9 | // // delegate. 10 | // public static void main(String[] argsIn) 11 | // { 12 | // String[] args = new String[] { "--is_jnlp" }; 13 | // try 14 | // { 15 | // Main.main(args); 16 | // } 17 | // catch (IOException ex) 18 | // { 19 | // ex.printStackTrace(); 20 | // } 21 | // } 22 | //} 23 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/deprecated/URLOpener.java: -------------------------------------------------------------------------------- 1 | package org.droiddraw.deprecated; 2 | //package org.droiddraw; 3 | // 4 | //public interface URLOpener 5 | //{ 6 | // public void openURL(String url); 7 | //} 8 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/ColorPanel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ColorPanel.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui; 13 | 14 | import java.awt.Color; 15 | import java.awt.FlowLayout; 16 | import java.awt.Graphics; 17 | import java.awt.Insets; 18 | import java.awt.event.ActionEvent; 19 | import java.awt.event.ActionListener; 20 | import java.awt.image.BufferedImage; 21 | import java.util.Vector; 22 | 23 | import javax.swing.BorderFactory; 24 | import javax.swing.Box; 25 | import javax.swing.ImageIcon; 26 | import javax.swing.JButton; 27 | import javax.swing.JColorChooser; 28 | import javax.swing.JDialog; 29 | import javax.swing.JPanel; 30 | import javax.swing.border.Border; 31 | 32 | import org.droiddraw.AndroidEditor; 33 | import org.droiddraw.property.ColorProperty; 34 | 35 | public class ColorPanel extends JPanel 36 | { 37 | private static final long serialVersionUID = 1L; 38 | JButton jb; 39 | JAutoComboBox jac; 40 | BufferedImage img; 41 | Color c; 42 | 43 | public ColorPanel(ColorProperty clr) 44 | { 45 | FlowLayout flayout = new FlowLayout(FlowLayout.LEFT); 46 | flayout.setHgap(0); 47 | flayout.setVgap(0); 48 | this.setLayout(flayout); 49 | this.c = clr.getColorValue(); 50 | img = new BufferedImage(17, 17, BufferedImage.TYPE_4BYTE_ABGR); 51 | Graphics g = img.getGraphics(); 52 | g.setColor(c); 53 | g.fillRect(0, 0, img.getWidth(), img.getHeight()); 54 | jb = new JButton(new ImageIcon(img)); 55 | // Border jbDefaultBorder = jb.getBorder(); 56 | jb.setMargin(new Insets(3,3,3,3)); 57 | 58 | String colorValue = clr.getStringValue(); 59 | 60 | Vector colors = new Vector(); 61 | colors.add(""); 62 | for (String key : AndroidEditor.instance().getColors().keySet()) 63 | colors.add("@color/" + key); 64 | jac = new JAutoComboBox(colors); 65 | jac.setEditable(true); 66 | jac.setStrict(false); 67 | jac.addActionListener(new ActionListener() 68 | { 69 | public void actionPerformed(ActionEvent arg0) 70 | { 71 | String colorDescriptor = jac.getSelectedItem().toString(); 72 | Color nc = ColorProperty.parseColor(colorDescriptor); 73 | if (nc != null) 74 | { 75 | c = nc; 76 | repaintImage(c); 77 | } 78 | else 79 | repaintImage(Color.white); 80 | } 81 | }); 82 | if (colorValue != null && colorValue.length() > 0) 83 | jac.setSelectedItem(colorValue); 84 | 85 | jb.addActionListener(new ActionListener() 86 | { 87 | public void actionPerformed(ActionEvent arg0) 88 | { 89 | Color nc = chooseColor(); 90 | if (nc != null) 91 | { 92 | String colorString = ColorProperty.makeColor(nc); 93 | jac.addItem(colorString); 94 | jac.setSelectedItem(colorString); 95 | } 96 | } 97 | }); 98 | add(jac); 99 | add(Box.createHorizontalStrut(2)); 100 | add(jb); 101 | } 102 | 103 | private void repaintImage(Color nc) 104 | { 105 | Graphics g = img.getGraphics(); 106 | g.setColor(nc); 107 | g.fillRect(0, 0, img.getWidth(), img.getHeight()); 108 | jb.repaint(); 109 | } 110 | 111 | public String getString() 112 | { 113 | return jac.getSelectedItem().toString(); 114 | } 115 | 116 | // TODO(brendan) : This is f-ugly! 117 | static JDialog jd; 118 | static JColorChooser jcc; 119 | static Color sc; 120 | 121 | public static Color chooseColor() 122 | { 123 | sc = null; 124 | if (jcc == null) 125 | { 126 | jcc = new JColorChooser(); 127 | jd = JColorChooser.createDialog(null, "Choose a color", true, jcc, 128 | new ActionListener() 129 | { 130 | public void actionPerformed(ActionEvent e) 131 | { 132 | sc = jcc.getColor(); 133 | } 134 | }, null); 135 | } 136 | jd.setVisible(true); 137 | return sc; 138 | } 139 | } 140 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/DonatePanel.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * DonatePanel.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui; 13 | 14 | import java.awt.Color; 15 | import java.awt.Cursor; 16 | import java.awt.Dimension; 17 | import java.awt.Graphics; 18 | import java.awt.Image; 19 | import java.awt.event.MouseAdapter; 20 | import java.awt.event.MouseEvent; 21 | import java.awt.event.MouseMotionAdapter; 22 | 23 | import javax.swing.JPanel; 24 | 25 | 26 | import com.jb2011.drioduibuilder.util.Utils; 27 | 28 | public class DonatePanel extends JPanel 29 | { 30 | private static final long serialVersionUID = 1L; 31 | Image donate; 32 | // Dimension d; 33 | 34 | public DonatePanel() 35 | { 36 | donate = ImageResources.instance().getImage("paypal"); 37 | 38 | // d = new Dimension(200, 200); 39 | 40 | this.addMouseListener(new MouseAdapter() 41 | { 42 | @Override 43 | public void mouseClicked(MouseEvent e) 44 | { 45 | String url = null; 46 | int y = e.getY(); 47 | if (y >= 60 && y < 90) 48 | url = "https://www.paypal.com/us/cgi-bin/webscr?cmd=_xclick&business=brendan.d.burns@gmail.com&item_name=Support%20DroidDraw¤cy_code=USD"; 49 | else if (y >= 110 && y < 130) 50 | url = "http://www.droiddraw.org/tutorial.html"; 51 | else if (y >= 160 && y < 180) 52 | url = "http://code.google.com/p/droiddraw/issues/list"; 53 | if (url != null) 54 | { 55 | Utils.browseURL(url); 56 | // AndroidEditor.instance().getURLOpener().openURL(url); 57 | } 58 | } 59 | }); 60 | 61 | this.addMouseMotionListener(new MouseMotionAdapter() 62 | { 63 | @Override 64 | public void mouseMoved(MouseEvent e) 65 | { 66 | if (e.getX() >= 20 67 | && e.getX() < 80 68 | && e.getY() >= 60 69 | && e.getY() < 90 70 | || e.getX() >= 20 71 | && e.getX() < 300 72 | && ((e.getY() >= 110 && e.getY() < 130) || (e.getY() >= 160 && e 73 | .getY() < 180))) 74 | { 75 | setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR)); 76 | } 77 | else 78 | { 79 | setCursor(Cursor.getDefaultCursor()); 80 | } 81 | } 82 | }); 83 | 84 | } 85 | 86 | // @Override 87 | // public Dimension getPreferredSize() 88 | // { 89 | // return d; 90 | // } 91 | // 92 | // @Override 93 | // public Dimension getMinimumSize() 94 | // { 95 | // return d; 96 | // } 97 | 98 | @Override 99 | public void paint(Graphics g) 100 | { 101 | g.setColor(Color.white); 102 | g.fillRect(0, 0, getWidth(), getHeight()); 103 | 104 | g.setColor(Color.black); 105 | g.drawString("DroidDraw is dependent on user donations to fund development.", 106 | 20, 20); 107 | g.drawString( 108 | "If you find DroidDraw useful, please consider supporting us.", 109 | 20, 40); 110 | g.drawImage(donate, 20, 60, null); 111 | 112 | g.drawString("Tutorials are also available at:", 20, 110); 113 | // Font f = g.getFont(); 114 | // Map map = new Hashtable(); 116 | // map.put(TextAttribute.UNDERLINE, TextAttribute.UNDERLINE_ON); 117 | // Font u = f.deriveFont(map); 118 | // g.setFont(u); 119 | g.drawString("http://www.droiddraw.org/tutorial.html", 20, 130); 120 | 121 | g.drawString("Please submit bugs/feature requests to:", 20, 160); 122 | g.drawString("http://code.google.com/p/droiddraw/issues/list", 20, 180); 123 | 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/ImageResources.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ImageResources.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui; 13 | 14 | import java.awt.Image; 15 | import java.util.Hashtable; 16 | 17 | public class ImageResources 18 | { 19 | private Hashtable images; 20 | private static ImageResources res = null; 21 | 22 | private ImageResources() 23 | { 24 | images = new Hashtable(); 25 | } 26 | 27 | public void addImage(Image img, String name) 28 | { 29 | images.put(name, img); 30 | } 31 | 32 | public Image getImage(String name) 33 | { 34 | return images.get(name); 35 | } 36 | 37 | public static ImageResources instance() 38 | { 39 | if (res == null) 40 | { 41 | res = new ImageResources(); 42 | } 43 | return res; 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/MoveRecord.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * MoveRecord.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui; 13 | 14 | import org.droiddraw.widget.Widget; 15 | 16 | import javax.swing.undo.AbstractUndoableEdit; 17 | 18 | public class MoveRecord extends AbstractUndoableEdit 19 | { 20 | private static final long serialVersionUID = 1L; 21 | int sx, sy; 22 | int nx, ny; 23 | Widget w; 24 | 25 | public MoveRecord(int sx, int sy, int nx, int ny, Widget w) 26 | { 27 | this.sx = sx; 28 | this.sy = sy; 29 | this.nx = nx; 30 | this.ny = ny; 31 | this.w = w; 32 | } 33 | 34 | @Override 35 | public boolean canRedo() 36 | { 37 | return true; 38 | } 39 | 40 | @Override 41 | public boolean canUndo() 42 | { 43 | return true; 44 | } 45 | 46 | @Override 47 | public void redo() 48 | { 49 | w.setPosition(nx, ny); 50 | } 51 | 52 | @Override 53 | public void undo() 54 | { 55 | w.setPosition(sx, sy); 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/NineWayImage.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * NineWayImage.java at 2015-2-6 16:12:01, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui; 13 | 14 | import java.awt.Graphics; 15 | import java.awt.Image; 16 | import java.awt.image.BufferedImage; 17 | 18 | // TODO 此类的实现以后要逐步换成NinePatch4j的实现! 19 | @Deprecated 20 | public class NineWayImage 21 | { 22 | BufferedImage[] images; 23 | int dx1, dy1, dx2, dy2, wx, wy; 24 | 25 | public NineWayImage(Image img, int dx, int dy) 26 | { 27 | this(img, dx, dy, dx, dy); 28 | } 29 | 30 | public NineWayImage(Image img, int dx1, int dy1, int dx2, int dy2) 31 | { 32 | if (img == null) 33 | { 34 | throw new IllegalArgumentException(); 35 | } 36 | this.images = new BufferedImage[9]; 37 | this.dx1 = dx1; 38 | this.dy1 = dy1; 39 | this.dx2 = dx2; 40 | this.dy2 = dy2; 41 | this.wx = img.getWidth(null) - (dx1 + dx2); 42 | this.wy = img.getHeight(null) - (dy1 + dy2); 43 | 44 | BufferedImage bi = new BufferedImage(img.getWidth(null), img 45 | .getHeight(null), BufferedImage.TYPE_4BYTE_ABGR); 46 | bi.getGraphics().drawImage(img, 0, 0, null); 47 | 48 | int w = bi.getWidth(); 49 | int h = bi.getHeight(); 50 | if (dx1 > 0 && dy1 > 0) 51 | images[0] = bi.getSubimage(1, 1, dx1, dy1); 52 | if (dy1 > 0) 53 | images[1] = bi.getSubimage(dx1, 1, wx, dy1); 54 | if (dx2 > 0 && dy1 > 0) 55 | images[2] = bi.getSubimage(w - dx2 - 1, 1, dx2, dy1); 56 | 57 | if (dx1 > 0) 58 | images[3] = bi.getSubimage(1, dy1, dx1, wy); 59 | images[4] = bi.getSubimage(dx1, dy1, wx, wy); 60 | if (dx2 > 0) 61 | images[5] = bi.getSubimage(w - dx2 - 1, dy1, dx2, wy); 62 | 63 | if (dx1 > 0 && dy2 > 0) 64 | images[6] = bi.getSubimage(1, h - dy2 - 1, dx1, dy2); 65 | if (dy2 > 0) 66 | images[7] = bi.getSubimage(dx1, h - dy2 - 1, wx, dy2); 67 | if (dx2 > 0 && dy2 > 0) 68 | images[8] = bi.getSubimage(w - dx2 - 1, h - dy2 - 1, dx2, dy2); 69 | } 70 | 71 | public void paint(Graphics g, int x, int y, int sx, int sy) 72 | { 73 | if (images[0] != null) 74 | g.drawImage(images[0], x, y, null); 75 | if (images[1] != null) 76 | g.drawImage(images[1], x + dx1, y, sx - (dx1 + dx2), dy1, null); 77 | if (images[2] != null) 78 | g.drawImage(images[2], x + sx - dx2, y, null); 79 | 80 | if (images[3] != null) 81 | g.drawImage(images[3], x, y + dy1, dx1, sy - (dy1 + dy2), null); 82 | if (images[4] != null) 83 | g.drawImage(images[4], x + dx1, y + dy1, sx - (dx1 + dx2), sy 84 | - (dy1 + dy2), null); 85 | if (images[5] != null) 86 | g.drawImage(images[5], x + sx - dx2, y + dy1, dx2, 87 | sy - (dy1 + dy2), null); 88 | 89 | if (images[6] != null) 90 | g.drawImage(images[6], x, y + sy - dy2, null); 91 | if (images[7] != null) 92 | g.drawImage(images[7], x + dx1, y + sy - dy2, sx - (dx1 + dx2), 93 | dy2, null); 94 | if (images[8] != null) 95 | g.drawImage(images[8], x + sx - dx2, y + sy - dy2, null); 96 | } 97 | } -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/Undo24.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/gui/Undo24.gif -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/WidgetAddRecord.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * WidgetAddRecord.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui; 13 | 14 | import org.droiddraw.AndroidEditor; 15 | import org.droiddraw.widget.Layout; 16 | import org.droiddraw.widget.Widget; 17 | 18 | import javax.swing.undo.AbstractUndoableEdit; 19 | 20 | public class WidgetAddRecord extends AbstractUndoableEdit 21 | { 22 | private static final long serialVersionUID = 1L; 23 | Layout l; 24 | Widget w; 25 | 26 | public WidgetAddRecord(Layout l, Widget w) 27 | { 28 | this.l = l; 29 | this.w = w; 30 | } 31 | 32 | @Override 33 | public void undo() 34 | { 35 | l.removeWidget(w); 36 | if (AndroidEditor.instance().getSelected() == w) 37 | { 38 | AndroidEditor.instance().select(null); 39 | } 40 | } 41 | 42 | @Override 43 | public void redo() 44 | { 45 | l.addWidget(w); 46 | } 47 | 48 | @Override 49 | public boolean canUndo() 50 | { 51 | return true; 52 | } 53 | 54 | @Override 55 | public boolean canRedo() 56 | { 57 | return true; 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/WidgetDeleteRecord.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * WidgetDeleteRecord.java at 2015-2-6 16:12:01, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui; 13 | 14 | import org.droiddraw.AndroidEditor; 15 | import org.droiddraw.widget.Layout; 16 | import org.droiddraw.widget.Widget; 17 | 18 | public class WidgetDeleteRecord extends WidgetAddRecord 19 | { 20 | private static final long serialVersionUID = 1L; 21 | 22 | public WidgetDeleteRecord(Layout l, Widget w) 23 | { 24 | super(l, w); 25 | } 26 | 27 | @Override 28 | public void undo() 29 | { 30 | super.redo(); 31 | AndroidEditor.instance().select(w); 32 | } 33 | 34 | @Override 35 | public void redo() 36 | { 37 | super.undo(); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/deprecated/AbstractWidgetPainter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * AbstractWidgetPainter.java at 2015-2-6 16:12:01, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui.deprecated; 13 | 14 | import java.awt.Graphics; 15 | 16 | import org.droiddraw.property.ColorProperty; 17 | import org.droiddraw.widget.Widget; 18 | 19 | @Deprecated 20 | //2012-11-20:由Jack Jiang标记为过时——目前为止不需要 21 | //painter机制,它是droiddraw原作者的实现,目前的评估是没 22 | //有多大必要,相反还使得代码复杂性增加,以后以下所有代码可 23 | //能会被删除! 24 | public abstract class AbstractWidgetPainter implements WidgetPainter 25 | { 26 | public void drawBackground(Widget w, Graphics g) 27 | { 28 | ColorProperty cp = (ColorProperty) w 29 | .getPropertyByAttName("android:background"); 30 | if (cp.getColorValue() != null) 31 | { 32 | g.setColor(cp.getColorValue()); 33 | g.fillRect(w.getX() - w.getPadding(Widget.LEFT), w.getY() 34 | - w.getPadding(Widget.TOP), w.getWidth() 35 | + w.getPadding(Widget.LEFT) + w.getPadding(Widget.RIGHT), w 36 | .getHeight() 37 | + w.getPadding(Widget.TOP) + w.getPadding(Widget.BOTTOM)); 38 | } 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/deprecated/LayoutPainter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * LayoutPainter.java at 2015-2-6 16:12:01, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui.deprecated; 13 | 14 | import java.awt.BasicStroke; 15 | import java.awt.Color; 16 | import java.awt.Graphics; 17 | import java.awt.Graphics2D; 18 | import java.awt.Stroke; 19 | 20 | import org.droiddraw.widget.Layout; 21 | import org.droiddraw.widget.Widget; 22 | 23 | @Deprecated 24 | // 2012-11-20:由Jack Jiang标记为过时——目前为止不需要 25 | // painter机制,它是droiddraw原作者的实现,目前的评估是没 26 | // 有多大必要,相反还使得代码复杂性增加,以后以下所有代码可 27 | // 能会被删除! 28 | public class LayoutPainter extends AbstractWidgetPainter 29 | { 30 | public void paint(Widget wx, Graphics g) 31 | { 32 | Layout l = (Layout) wx; 33 | 34 | // 画背景 35 | Graphics2D g2d = (Graphics2D) g; 36 | drawBackground(l, g); 37 | 38 | // 画TAG字符串(用于告之ui设计者这个组件的名字) 39 | g2d.translate(l.getX(), l.getY()); 40 | g.setColor(Color.lightGray); 41 | if (l.getWidgets().size() == 0) 42 | g.drawString(l.getTagName(), 2, 15); 43 | 44 | // 画边框 45 | g.drawRect(0, 0, l.getWidth(), l.getHeight()); 46 | 47 | // 递归画该布局的子组件 48 | for (Widget w : l.getWidgets()) 49 | { 50 | Stroke oldStroke = g2d.getStroke(); 51 | 52 | // 处于gone状态的widget就不用绘制了 53 | if(!w.isGone()) 54 | { 55 | if (w.isVisible()) 56 | { 57 | // do nothing 58 | } 59 | // 如果是invisible则用虚线进行绘制,从而方便告之用户,这些组件是invisible的 60 | else 61 | { 62 | // 虚线样式 63 | Stroke sroke = new BasicStroke(1, BasicStroke.CAP_BUTT, 64 | BasicStroke.JOIN_BEVEL, 0, new float[]{1, 2}, 0);//实线,空白 65 | g2d.setStroke(sroke); 66 | } 67 | 68 | // 似乎没有必要单独搞什么painter,只需要给各widget一个isUsedForDesign不就行了? 69 | // 起码目前想不出来用painter有什么好处?相反还要维护2处paint代码!!!!!!!! 70 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 71 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 72 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 73 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 74 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 75 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 76 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 77 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 78 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 79 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 80 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 81 | // TODO !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 82 | // 递归画该布局的子组件哦 83 | // WidgetPainter wp = WidgetPaintersRegistry.getPainter(w.getClass()); 84 | // if (wp != null) 85 | // wp.paint(w, g); 86 | // else 87 | w.paint(g); 88 | 89 | // 撤销虚线设置 90 | if( !w.isVisible()) 91 | g2d.setStroke(oldStroke); 92 | } 93 | } 94 | g2d.translate(-l.getX(), -l.getY()); 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/deprecated/ScrollViewPainter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ScrollViewPainter.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui.deprecated; 13 | 14 | import java.awt.Graphics; 15 | 16 | import org.droiddraw.gui.ImageResources; 17 | import org.droiddraw.gui.NineWayImage; 18 | import org.droiddraw.widget.Layout; 19 | import org.droiddraw.widget.Widget; 20 | 21 | @Deprecated 22 | //2012-11-20:由Jack Jiang标记为过时——目前为止不需要 23 | //painter机制,它是droiddraw原作者的实现,目前的评估是没 24 | //有多大必要,相反还使得代码复杂性增加,以后以下所有代码可 25 | //能会被删除! 26 | public class ScrollViewPainter extends LayoutPainter 27 | { 28 | NineWayImage field; 29 | NineWayImage bar; 30 | 31 | public ScrollViewPainter() 32 | { 33 | field = new NineWayImage(ImageResources.instance().getImage( 34 | "scrollfield.9"), 2, 4); 35 | bar = new NineWayImage(ImageResources.instance() 36 | .getImage("scrollbar.9"), 1, 6); 37 | } 38 | 39 | @Override 40 | public void paint(Widget wx, Graphics g) 41 | { 42 | Layout l = (Layout) wx; 43 | super.paint(l, g); 44 | field.paint(g, l.getX() + l.getWidth() - 10, l.getY(), 10, l 45 | .getHeight()); 46 | bar.paint(g, l.getX() + l.getWidth() - 10, l.getY(), 10, 47 | (l.getHeight() < 50) ? l.getHeight() : 50); 48 | } 49 | } 50 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/deprecated/WidgetPainter.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * WidgetPainter.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.gui.deprecated; 13 | 14 | import java.awt.Graphics; 15 | 16 | import org.droiddraw.widget.Widget; 17 | 18 | @Deprecated 19 | //2012-11-20:由Jack Jiang标记为过时——目前为止不需要 20 | //painter机制,它是droiddraw原作者的实现,目前的评估是没 21 | //有多大必要,相反还使得代码复杂性增加,以后以下所有代码可 22 | //能会被删除! 23 | public interface WidgetPainter 24 | { 25 | public void paint(Widget w, Graphics g); 26 | } 27 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/gui/deprecated/WidgetPaintersRegistry.java: -------------------------------------------------------------------------------- 1 | package org.droiddraw.gui.deprecated; 2 | //package org.droiddraw.gui.painter; 3 | // 4 | //import java.util.Hashtable; 5 | // 6 | // 7 | //@Deprecated 8 | ////2012-11-20:由Jack Jiang标记为过时——目前为止不需要 9 | ////painter机制,它是droiddraw原作者的实现,目前的评估是没 10 | ////有多大必要,相反还使得代码复杂性增加,以后以下所有代码可 11 | ////能会被删除! 12 | //public class WidgetPaintersRegistry 13 | //{ 14 | // static Hashtable, WidgetPainter> painters = new Hashtable, WidgetPainter>(); 15 | // 16 | // /** 17 | // * 本方法在launch主类中被调用,用来设置指定类及其子类的Painter类. 18 | // * 19 | // * @param c 20 | // * @param wp 21 | // */ 22 | // public static void registerPainter(Class c, WidgetPainter wp) 23 | // { 24 | // painters.put(c, wp); 25 | // } 26 | // 27 | // public static WidgetPainter getPainter(Class c) 28 | // { 29 | // Class clazz = c; 30 | // while (clazz != null && !clazz.equals(Object.class)) 31 | // { 32 | // if (painters.get(clazz) != null) 33 | // return painters.get(clazz); 34 | // clazz = clazz.getSuperclass(); 35 | // } 36 | // return null; 37 | // } 38 | //} 39 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/BooleanProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * BooleanProperty.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | import java.beans.PropertyChangeEvent; 15 | 16 | public class BooleanProperty extends Property 17 | { 18 | boolean value; 19 | boolean defaultValue; 20 | 21 | public BooleanProperty(String englishName, String attName, 22 | boolean defaultValue) 23 | { 24 | this(englishName, attName, defaultValue, true); 25 | this.defaultValue = defaultValue; 26 | } 27 | 28 | public BooleanProperty(String englishName, String attName, 29 | boolean defaultValue, boolean editable) 30 | { 31 | super(englishName, attName, editable); 32 | this.value = defaultValue; 33 | } 34 | 35 | @Override 36 | protected boolean isDefaultInternal() 37 | { 38 | return value == defaultValue; 39 | } 40 | 41 | @Override 42 | public Object getValue() 43 | { 44 | if (value) 45 | return "true"; 46 | else 47 | return "false"; 48 | } 49 | 50 | public boolean getBooleanValue() 51 | { 52 | return value; 53 | } 54 | 55 | public void setBooleanValue(boolean b) 56 | { 57 | boolean old = value; 58 | this.value = b; 59 | firePropertyChangedEvent(new PropertyChangeEvent(this, this 60 | .getAtttributeName(), old, b)); 61 | } 62 | 63 | @Override 64 | public void setValue(String value) 65 | { 66 | if ("true".equals(value)) 67 | { 68 | setBooleanValue(true); 69 | } 70 | else if ("false".equals(value)) 71 | { 72 | setBooleanValue(false); 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/ColorProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ColorProperty.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | import java.awt.Color; 15 | 16 | import org.droiddraw.AndroidEditor; 17 | import org.droiddraw.MainPane; 18 | 19 | public class ColorProperty extends StringProperty 20 | { 21 | Color c; 22 | Color defaultColor; 23 | 24 | public ColorProperty(String englishName, String attName, Color defaultValue) 25 | { 26 | super(englishName, attName, makeColor(defaultValue)); 27 | this.c = defaultValue; 28 | this.defaultColor = defaultValue; 29 | } 30 | 31 | @Override 32 | protected boolean isDefaultInternal() 33 | { 34 | if (c == null) 35 | { 36 | return true; 37 | } 38 | return c.equals(defaultColor); 39 | } 40 | 41 | @Override 42 | public void setStringValue(String col) 43 | { 44 | if (col == null || col.length() == 0) 45 | { 46 | setColorValue(null); 47 | } 48 | else 49 | { 50 | try 51 | { 52 | setColorValue(parseColor(col)); 53 | if (col.startsWith("@")) 54 | { 55 | super.setStringValue(col); 56 | } 57 | } 58 | catch (NumberFormatException ex) 59 | { 60 | MainPane.getTipCom().error(ex); 61 | } 62 | } 63 | } 64 | 65 | public static Color parseColor(String col) 66 | { 67 | if (col.length() == 0) 68 | { 69 | return null; 70 | } 71 | if (col.startsWith("@")) 72 | { 73 | int ix = col.indexOf("/"); 74 | String name = col.substring(ix + 1); 75 | if (AndroidEditor.instance().getColors() != null) 76 | return AndroidEditor.instance().getColors().get(name); 77 | else 78 | return null; 79 | } 80 | 81 | int a, r, g, b; 82 | switch (col.length()) 83 | { 84 | case 4: 85 | a = 255; 86 | r = readHex(col.substring(1, 2)); 87 | g = readHex(col.substring(2, 3)); 88 | b = readHex(col.substring(3)); 89 | break; 90 | case 5: 91 | a = readHex(col.substring(1, 2)); 92 | r = readHex(col.substring(2, 3)); 93 | g = readHex(col.substring(3, 4)); 94 | b = readHex(col.substring(4)); 95 | break; 96 | case 7: 97 | a = 255; 98 | r = readHex(col.substring(1, 3)); 99 | g = readHex(col.substring(3, 5)); 100 | b = readHex(col.substring(5)); 101 | break; 102 | case 9: 103 | a = readHex(col.substring(1, 3)); 104 | r = readHex(col.substring(3, 5)); 105 | g = readHex(col.substring(5, 7)); 106 | b = readHex(col.substring(7)); 107 | break; 108 | default: 109 | throw new NumberFormatException(col); 110 | } 111 | return new Color(r, g, b, a); 112 | } 113 | 114 | public Color getColorValue() 115 | { 116 | return c; 117 | } 118 | 119 | public void setColorValue(Color c) 120 | { 121 | this.c = c; 122 | super.setStringValue(makeColor(this.c)); 123 | } 124 | 125 | public static final int readHex(String in) 126 | { 127 | return Integer.parseInt(in, 16); 128 | } 129 | 130 | public static final String makeColor(java.awt.Color c) 131 | { 132 | if (c == null) 133 | return ""; 134 | return "#" + hexString(c.getAlpha()) + hexString(c.getRed()) 135 | + hexString(c.getGreen()) + hexString(c.getBlue()); 136 | } 137 | 138 | public static final String hexString(int c) 139 | { 140 | String res = Integer.toHexString(c); 141 | if (res.length() == 1) 142 | { 143 | res = "0" + res; 144 | } 145 | return res; 146 | } 147 | } 148 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/FloatProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * FloatProperty.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | public class FloatProperty extends Property 15 | { 16 | float def; 17 | float value; 18 | 19 | public FloatProperty(String englishName, String attName, float def) 20 | { 21 | super(englishName, attName, true, true); 22 | this.def = def; 23 | this.value = def; 24 | } 25 | 26 | @Override 27 | public Object getValue() 28 | { 29 | return new Float(value); 30 | } 31 | 32 | @Override 33 | protected boolean isDefaultInternal() 34 | { 35 | return value == def; 36 | } 37 | 38 | @Override 39 | public void setValue(String value) 40 | { 41 | try 42 | { 43 | this.value = Float.parseFloat(value); 44 | } 45 | catch (NumberFormatException ex) 46 | { 47 | ex.printStackTrace(); 48 | this.value = -1f; 49 | } 50 | } 51 | 52 | public void setFloatValue(float value) 53 | { 54 | this.value = value; 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/ImageProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ImageProperty.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | public class ImageProperty extends StringProperty 15 | { 16 | public ImageProperty(String englishName, String attName, String defaultValue) 17 | { 18 | super(englishName, attName, defaultValue); 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/IntProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * IntProperty.java at 2015-2-6 16:12:01, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | public class IntProperty extends Property 15 | { 16 | int value; 17 | int defValue; 18 | 19 | public IntProperty(String name, String attName, int defaultValue) 20 | { 21 | this(name, attName, defaultValue, true); 22 | } 23 | 24 | public IntProperty(String name, String attName, int defaultValue, 25 | boolean editable) 26 | { 27 | super(name, attName, editable); 28 | this.value = defaultValue; 29 | this.defValue = defaultValue; 30 | } 31 | 32 | @Override 33 | public Object getValue() 34 | { 35 | return new Integer(value); 36 | } 37 | 38 | @Override 39 | protected boolean isDefaultInternal() 40 | { 41 | return value == defValue; 42 | } 43 | 44 | @Override 45 | public void setValue(String value) 46 | { 47 | if (value != null) 48 | setIntValue(Integer.parseInt(value)); 49 | } 50 | 51 | public int getIntValue() 52 | { 53 | return value; 54 | } 55 | 56 | public void setIntValue(int v) 57 | { 58 | this.value = v; 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/Property.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * Property.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | import java.beans.PropertyChangeEvent; 15 | import java.beans.PropertyChangeListener; 16 | import java.util.Vector; 17 | 18 | public abstract class Property 19 | { 20 | protected String englishName; 21 | protected String attName; 22 | protected boolean editable; 23 | protected boolean def; 24 | protected Vector listeners; 25 | 26 | public Property(String englishName, String attName, boolean editable) 27 | { 28 | this(englishName, attName, editable, true); 29 | } 30 | 31 | public Property(String englishName, String attName, boolean editable, 32 | boolean def) 33 | { 34 | super(); 35 | this.englishName = englishName; 36 | this.attName = attName; 37 | this.editable = editable; 38 | this.def = def; 39 | this.listeners = new Vector(); 40 | } 41 | 42 | public void addPropertyChangeListener(PropertyChangeListener listener) 43 | { 44 | listeners.add(listener); 45 | } 46 | 47 | public void firePropertyChangedEvent(PropertyChangeEvent evt) 48 | { 49 | for (PropertyChangeListener l : listeners) 50 | { 51 | l.propertyChange(evt); 52 | } 53 | } 54 | 55 | public boolean getEditable() 56 | { 57 | return editable; 58 | } 59 | 60 | public void setDefaulted(boolean def) 61 | { 62 | this.def = def; 63 | } 64 | 65 | public void setEditable(boolean editable) 66 | { 67 | this.editable = editable; 68 | } 69 | 70 | public String getEnglishName() 71 | { 72 | return englishName; 73 | } 74 | 75 | public String getAtttributeName() 76 | { 77 | return attName; 78 | } 79 | 80 | public abstract Object getValue(); 81 | 82 | public abstract void setValue(String value); 83 | 84 | public boolean isDefault() 85 | { 86 | if (editable && def) 87 | return isDefaultInternal(); 88 | else 89 | return false; 90 | } 91 | 92 | protected abstract boolean isDefaultInternal(); 93 | 94 | @Override 95 | public boolean equals(Object o) 96 | { 97 | if (o instanceof Property) 98 | { 99 | Property prop = (Property) o; 100 | return prop.getAtttributeName().equals(this.getAtttributeName()); 101 | } 102 | return false; 103 | } 104 | } 105 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/SelectProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * SelectProperty.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | public class SelectProperty extends StringProperty 15 | { 16 | String[] options; 17 | int selected_ix; 18 | int default_ix; 19 | 20 | public SelectProperty(String englishName, String attName, String[] options, 21 | int default_ix) 22 | { 23 | super(englishName, attName, options[default_ix]); 24 | this.options = options; 25 | this.selected_ix = default_ix; 26 | this.default_ix = default_ix; 27 | } 28 | 29 | @Override 30 | protected boolean isDefaultInternal() 31 | { 32 | return selected_ix == default_ix; 33 | } 34 | 35 | public String[] getOptions() 36 | { 37 | return options; 38 | } 39 | 40 | public void setSelectedIndex(int ix) 41 | { 42 | setStringValue(options[ix]); 43 | } 44 | 45 | @Override 46 | public String getStringValue() 47 | { 48 | return options[selected_ix]; 49 | } 50 | 51 | @Override 52 | public void setStringValue(String value) 53 | { 54 | super.setStringValue(value); 55 | for (int i = 0; i < options.length; i++) 56 | { 57 | if (options[i].equals(value)) 58 | { 59 | selected_ix = i; 60 | } 61 | } 62 | } 63 | 64 | public int getSelectedIndex() 65 | { 66 | return selected_ix; 67 | } 68 | 69 | public void setDefaultIndex(int ix) 70 | { 71 | this.default_ix = ix; 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/StringProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * StringProperty.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | import java.beans.PropertyChangeEvent; 15 | 16 | import org.droiddraw.AndroidEditor; 17 | 18 | public class StringProperty extends Property 19 | { 20 | String value; 21 | String defaultValue; 22 | 23 | public StringProperty(String englishName, String attName, 24 | String defaultValue) 25 | { 26 | this(englishName, attName, defaultValue, true); 27 | this.defaultValue = defaultValue; 28 | } 29 | 30 | public StringProperty(String englishName, String attName, 31 | String defaultValue, boolean editable) 32 | { 33 | super(englishName, attName, editable); 34 | this.value = defaultValue; 35 | } 36 | 37 | @Override 38 | protected boolean isDefaultInternal() 39 | { 40 | return value.equals(defaultValue); 41 | } 42 | 43 | @Override 44 | public Object getValue() 45 | { 46 | return getStringValue(); 47 | } 48 | 49 | public String getRawStringValue() 50 | { 51 | return value; 52 | } 53 | 54 | public String getStringValue() 55 | { 56 | if (value != null && value.startsWith("@string") 57 | && AndroidEditor.instance().getStrings() != null) 58 | { 59 | String key = value.substring(value.indexOf("/") + 1); 60 | String str = AndroidEditor.instance().getStrings().get(key); 61 | if (str == null) 62 | str = value; 63 | return str; 64 | } 65 | else 66 | { 67 | return value; 68 | } 69 | } 70 | 71 | public void setStringValue(String value) 72 | { 73 | this.setStringValue(value, false); 74 | } 75 | 76 | public void setStringValue(String value, boolean setDefault) 77 | { 78 | String old = this.value; 79 | this.value = value; 80 | if (setDefault) 81 | { 82 | this.defaultValue = value; 83 | } 84 | firePropertyChangedEvent(new PropertyChangeEvent(this, this 85 | .getAtttributeName(), old, value)); 86 | } 87 | 88 | @Override 89 | public void setValue(String value) 90 | { 91 | setStringValue(value); 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/property/WidthProperty.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * WidthProperty.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.property; 13 | 14 | import org.droiddraw.AndroidEditor; 15 | 16 | public class WidthProperty extends StringProperty 17 | { 18 | public WidthProperty(String name, String attName, int defaultValue) 19 | { 20 | this(name, attName, defaultValue 21 | + AndroidEditor.instance().getScreenUnit()); 22 | } 23 | 24 | public WidthProperty(String name, String attName, String defaultValue) 25 | { 26 | super(name, attName, defaultValue); 27 | } 28 | 29 | public int getIntValue() 30 | { 31 | String value = getStringValue(); 32 | if (value.endsWith("px") || value.endsWith("dp") 33 | || value.endsWith("sp") || value.endsWith("in") 34 | || value.endsWith("pt")) 35 | { 36 | String substr = value.substring(0, value.length() - 2); 37 | return Integer.parseInt(substr); 38 | } 39 | else 40 | { 41 | return Integer.parseInt(value); 42 | } 43 | } 44 | 45 | public Object getValue() 46 | { 47 | String val = getStringValue(); 48 | try 49 | { 50 | // This is kind of hacky, try to parse into an int, if that works, 51 | // append dp. 52 | int value = Integer.parseInt(val); 53 | return value + AndroidEditor.instance().getScreenUnit(); 54 | } 55 | catch (Exception ignore) 56 | { 57 | } 58 | return val; 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/FontObjectFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * FontObjectFactory.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.resource; 13 | 14 | import java.awt.Font; 15 | 16 | /** 17 | * 字体辅助类. 18 | * 19 | * @author Jack Jiang, 2012-11-24 20 | * @version 1.0 21 | */ 22 | public class FontObjectFactory 23 | { 24 | private static Font droidSans = null; 25 | private static Font driodSansMono = null; 26 | 27 | public static Font getDroidSans() 28 | { 29 | if(droidSans == null) 30 | droidSans = getFontFromFile("font/DroidSans.ttf"); 31 | return droidSans; 32 | } 33 | 34 | public static Font getDroidSans_Bold() 35 | { 36 | if(droidSans == null) 37 | droidSans = getFontFromFile("font/DroidSans-Bold.ttf"); 38 | return droidSans; 39 | } 40 | 41 | public static Font getDroidSansMono() 42 | { 43 | if(driodSansMono == null) 44 | driodSansMono = getFontFromFile("font/DroidSansMono.ttf"); 45 | return driodSansMono; 46 | } 47 | 48 | private static Font getFontFromFile(String relativePatch) 49 | { 50 | Font f = null; 51 | try{ 52 | f = Font.createFont(Font.TRUETYPE_FONT 53 | , FontObjectFactory.class.getResourceAsStream(relativePatch)); 54 | } 55 | catch (Exception e){ 56 | f = Font.getFont("Arial"); 57 | } 58 | 59 | return f; 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/IconFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * IconFactory.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.resource; 13 | 14 | import javax.swing.ImageIcon; 15 | 16 | import org.jb2011.lnf.beautyeye.utils.RawCache; 17 | 18 | /** 19 | * 普通图片工厂类. 20 | * 21 | * @author Jack Jiang 22 | * @version 1.0 23 | */ 24 | public class IconFactory extends RawCache 25 | { 26 | /** 相对路径根(默认是相对于本类的相对物理路径). */ 27 | public final static String IMGS_ROOT="imgs"; 28 | 29 | /** The instance. */ 30 | private static IconFactory instance = null; 31 | 32 | /** 33 | * Gets the single instance of __IconFactory__. 34 | * 35 | * @return single instance of __IconFactory__ 36 | */ 37 | public static IconFactory getInstance() 38 | { 39 | if(instance==null) 40 | instance = new IconFactory(); 41 | return instance; 42 | } 43 | 44 | /* (non-Javadoc) 45 | * @see org.jb2011.lnf.beautyeye.utils.RawCache#getResource(java.lang.String, java.lang.Class) 46 | */ 47 | @Override 48 | protected ImageIcon getResource(String relativePath, Class baseClass) 49 | { 50 | return new ImageIcon(baseClass.getResource(relativePath)); 51 | } 52 | 53 | /** 54 | * Gets the image. 55 | * 56 | * @param relativePath the relative path 57 | * @return the image 58 | */ 59 | public ImageIcon getImage(String relativePath) 60 | { 61 | return getRaw(relativePath,this.getClass()); 62 | } 63 | 64 | public ImageIcon getDAndCPane_Icon_left() 65 | { 66 | return getImage(IMGS_ROOT+"/d$cswitcher_bg_2_20121117.png"); 67 | } 68 | public ImageIcon getDAndCPane_Icon_right() 69 | { 70 | return getImage(IMGS_ROOT+"/d$cswitcher_bg_1_20121117.png"); 71 | } 72 | 73 | public ImageIcon getNavigateTool_hot_Icon() 74 | { 75 | return getImage(IMGS_ROOT+"/navigate_tool_hot.png"); 76 | } 77 | public ImageIcon getNavigateTool_decoratedAndroidLogo_Icon() 78 | { 79 | return getImage(IMGS_ROOT+"/navigate_tool_decorated_android_logo.png"); 80 | } 81 | 82 | public ImageIcon getMakeLayoutHeadFlag_Icon() 83 | { 84 | return getImage(IMGS_ROOT+"/make_layout_head_flag.png"); 85 | } 86 | 87 | //------------------------------------------------------------------- layout preview small icon 88 | public ImageIcon getAbsoluteLayout_small_Icon() 89 | { 90 | return getImage(IMGS_ROOT+"/AbsoluteLayout.png"); 91 | } 92 | public ImageIcon getFrameLayout_small_Icon() 93 | { 94 | return getImage(IMGS_ROOT+"/FrameLayout.png"); 95 | } 96 | public ImageIcon getLinearLayout_small_Icon() 97 | { 98 | return getImage(IMGS_ROOT+"/VerticalLinearLayout.png"); 99 | } 100 | public ImageIcon getRelativeLayout_small_Icon() 101 | { 102 | return getImage(IMGS_ROOT+"/RelativeLayout.png"); 103 | } 104 | public ImageIcon getScrollView_small_Icon() 105 | { 106 | return getImage(IMGS_ROOT+"/ScrollView.png"); 107 | } 108 | public ImageIcon getTableLayout_small_Icon() 109 | { 110 | return getImage(IMGS_ROOT+"/TableLayout.png"); 111 | } 112 | 113 | public ImageIcon getTableRow_small_Icon() 114 | { 115 | return getImage(IMGS_ROOT+"/TableRow.png"); 116 | } 117 | 118 | // public ImageIcon getGridView_small_Icon() 119 | // { 120 | // return getImage(IMGS_ROOT+"/GridView.png"); 121 | // } 122 | // 123 | // public ImageIcon getListView_small_Icon() 124 | // { 125 | // return getImage(IMGS_ROOT+"/ListView.png"); 126 | // } 127 | 128 | } 129 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/WidgetDefaultNPIconFactory.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * WidgetDefaultNPIconFactory.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.resource; 13 | 14 | import org.jb2011.lnf.beautyeye.utils.NinePatchHelper; 15 | import org.jb2011.lnf.beautyeye.utils.RawCache; 16 | import org.jb2011.ninepatch4j.NinePatch; 17 | 18 | /** 19 | * Object factory of NinePatch pictures(*.9.png). 20 | * 21 | * @author Jack Jiang 22 | * @version 1.0 23 | */ 24 | public class WidgetDefaultNPIconFactory extends RawCache 25 | { 26 | /** root path(relative this NPIconFactory.class). */ 27 | public final static String IMGS_ROOT="imgs/default/np"; 28 | 29 | /** The instance. */ 30 | private static WidgetDefaultNPIconFactory instance = null; 31 | 32 | /** 33 | * Gets the single instance of __Icon9Factory__. 34 | * 35 | * @return single instance of __Icon9Factory__ 36 | */ 37 | public static WidgetDefaultNPIconFactory getInstance() 38 | { 39 | if(instance==null) 40 | instance = new WidgetDefaultNPIconFactory(); 41 | return instance; 42 | } 43 | 44 | /* (non-Javadoc) 45 | * @see org.jb2011.lnf.beautyeye.utils.RawCache#getResource(java.lang.String, java.lang.Class) 46 | */ 47 | @Override 48 | protected NinePatch getResource(String relativePath, Class baseClass) 49 | { 50 | return NinePatchHelper.createNinePatch(baseClass.getResource(relativePath), false); 51 | } 52 | 53 | /** 54 | * Gets the raw. 55 | * 56 | * @param relativePath the relative path 57 | * @return the raw 58 | */ 59 | public NinePatch getRaw(String relativePath) 60 | { 61 | return getRaw(relativePath,this.getClass()); 62 | } 63 | 64 | public NinePatch getButton_normal() 65 | { 66 | return getRaw(IMGS_ROOT+"/btn_default_normal.9.png"); 67 | } 68 | 69 | public NinePatch getSpinner_normal() 70 | { 71 | return getRaw(IMGS_ROOT+"/btn_dropdown_normal.9.png"); 72 | } 73 | 74 | public NinePatch getEditBox_normal() 75 | { 76 | return getRaw(IMGS_ROOT+"/editbox_background_normal.9.png"); 77 | } 78 | 79 | public NinePatch getTab_normal() 80 | { 81 | return getRaw(IMGS_ROOT+"/tab_normal.9.png"); 82 | } 83 | 84 | public NinePatch getTextView_normal() 85 | { 86 | return getRaw(IMGS_ROOT+"/text_view_in_tool_bg.9.png"); 87 | } 88 | 89 | /** 一个圆角背景图 */ 90 | public NinePatch getEacherRoundBg() 91 | { 92 | return getRaw(IMGS_ROOT+"/eacher_round_bg.9.png"); 93 | } 94 | } -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/font/DroidSans.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/font/DroidSans.ttf -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/font/DroidSansMono.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/font/DroidSansMono.ttf -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/AbsoluteLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/AbsoluteLayout.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/FrameLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/FrameLayout.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/GridView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/GridView.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/ListView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/ListView.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/RelativeLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/RelativeLayout.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/ScrollView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/ScrollView.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/TableLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/TableLayout.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/TableRow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/TableRow.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/VerticalLinearLayout.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/VerticalLinearLayout.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/d$cswitcher_bg_1_20121117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/d$cswitcher_bg_1_20121117.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/d$cswitcher_bg_2_20121117.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/d$cswitcher_bg_2_20121117.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/btn_default_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/btn_default_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/btn_dropdown_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/btn_dropdown_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/eacher_round_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/eacher_round_bg.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/editbox_background_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/editbox_background_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/tab_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/tab_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/text_view_in_tool_bg.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/default/np/text_view_in_tool_bg.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/make_layout_head_flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/make_layout_head_flag.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/navigate_tool_decorated_android_logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/navigate_tool_decorated_android_logo.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/navigate_tool_hot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/org/droiddraw/resource/imgs/navigate_tool_hot.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/util/ArrayHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ArrayHandler.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.util; 13 | 14 | import java.io.IOException; 15 | import java.io.InputStream; 16 | import java.io.PrintWriter; 17 | import java.io.Writer; 18 | import java.util.Hashtable; 19 | import java.util.Vector; 20 | 21 | import javax.xml.parsers.ParserConfigurationException; 22 | import javax.xml.parsers.SAXParser; 23 | import javax.xml.parsers.SAXParserFactory; 24 | 25 | import org.xml.sax.Attributes; 26 | import org.xml.sax.InputSource; 27 | import org.xml.sax.SAXException; 28 | import org.xml.sax.helpers.DefaultHandler; 29 | 30 | public class ArrayHandler extends DefaultHandler 31 | { 32 | Hashtable> arrays; 33 | Vector items; 34 | 35 | StringBuffer buff; 36 | String name; 37 | 38 | public ArrayHandler() 39 | { 40 | arrays = new Hashtable>(); 41 | buff = new StringBuffer(); 42 | } 43 | 44 | @Override 45 | public void characters(char arg0[], int arg1, int arg2) 46 | { 47 | buff.append(arg0, arg1, arg2); 48 | } 49 | 50 | @Override 51 | public void startDocument() 52 | { 53 | arrays.clear(); 54 | } 55 | 56 | @Override 57 | public void startElement(String ns, String lName, String qName, 58 | Attributes atts) 59 | { 60 | buff.setLength(0); 61 | if (qName.equals("array")) 62 | { 63 | name = atts.getValue("name"); 64 | items = new Vector(); 65 | } 66 | 67 | } 68 | 69 | @Override 70 | public void endElement(String uri, String localName, String qName) 71 | { 72 | if (qName.equals("item")) 73 | { 74 | String str = buff.toString(); 75 | while (str.indexOf("\\u") != -1) 76 | { 77 | int ix = str.indexOf("\\u"); 78 | int code = Integer.parseInt(str.substring(ix + 2, ix + 6), 16); 79 | str = str.substring(0, ix) + (char) code 80 | + str.substring(ix + 6); 81 | } 82 | while (str.indexOf("\\n") != -1) 83 | { 84 | str = str.replace("\\n", "\n"); 85 | } 86 | items.add(str); 87 | } 88 | else if (qName.equals("array")) 89 | { 90 | arrays.put(name, items); 91 | items = null; 92 | } 93 | } 94 | 95 | public Hashtable> getArrays() 96 | { 97 | return arrays; 98 | } 99 | 100 | public static Hashtable> load(InputStream is) 101 | throws SAXException, ParserConfigurationException, IOException 102 | { 103 | return load(new InputSource(is)); 104 | } 105 | 106 | public static Hashtable> load(InputSource in) 107 | throws SAXException, ParserConfigurationException, IOException 108 | { 109 | ArrayHandler sh = new ArrayHandler(); 110 | SAXParserFactory factory = SAXParserFactory.newInstance(); 111 | SAXParser parser = factory.newSAXParser(); 112 | parser.parse(in, sh); 113 | return sh.getArrays(); 114 | } 115 | 116 | public static void dump(Writer w, Hashtable> arrays) 117 | { 118 | PrintWriter pw = new PrintWriter(w); 119 | pw.println(""); 120 | pw.println(""); 121 | if (arrays != null) 122 | { 123 | for (String key : arrays.keySet()) 124 | { 125 | pw.println(""); 126 | Vector array = arrays.get(key); 127 | for (String item : array) 128 | { 129 | pw.println("" + item + ""); 130 | } 131 | pw.println(""); 132 | } 133 | } 134 | pw.println(""); 135 | pw.flush(); 136 | } 137 | 138 | } 139 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/util/ColorHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ColorHandler.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.util; 13 | 14 | import java.awt.Color; 15 | import java.io.IOException; 16 | import java.io.InputStream; 17 | import java.io.PrintWriter; 18 | import java.io.Writer; 19 | import java.util.Hashtable; 20 | 21 | import javax.xml.parsers.ParserConfigurationException; 22 | import javax.xml.parsers.SAXParser; 23 | import javax.xml.parsers.SAXParserFactory; 24 | 25 | import org.droiddraw.property.ColorProperty; 26 | import org.xml.sax.Attributes; 27 | import org.xml.sax.InputSource; 28 | import org.xml.sax.SAXException; 29 | import org.xml.sax.helpers.DefaultHandler; 30 | 31 | public class ColorHandler extends DefaultHandler 32 | { 33 | Hashtable colors; 34 | StringBuffer buff; 35 | String name; 36 | 37 | public ColorHandler() 38 | { 39 | colors = new Hashtable(); 40 | buff = new StringBuffer(); 41 | } 42 | 43 | @Override 44 | public void characters(char[] arg0, int arg1, int arg2) 45 | { 46 | buff.append(arg0, arg1, arg2); 47 | } 48 | 49 | @Override 50 | public void startDocument() 51 | { 52 | colors.clear(); 53 | } 54 | 55 | @Override 56 | public void startElement(String ns, String lName, String qName, 57 | Attributes atts) 58 | { 59 | buff.setLength(0); 60 | if (qName.equals("color")) 61 | { 62 | name = atts.getValue("name"); 63 | } 64 | } 65 | 66 | @Override 67 | public void endElement(String uri, String localName, String qName) 68 | { 69 | if (qName.equals("color")) 70 | { 71 | colors.put(name, ColorProperty.parseColor(buff.toString())); 72 | } 73 | } 74 | 75 | public Hashtable getColors() 76 | { 77 | return colors; 78 | } 79 | 80 | public static Hashtable load(InputStream is) 81 | throws SAXException, ParserConfigurationException, IOException 82 | { 83 | return load(new InputSource(is)); 84 | } 85 | 86 | public static Hashtable load(InputSource in) 87 | throws SAXException, ParserConfigurationException, IOException 88 | { 89 | ColorHandler sh = new ColorHandler(); 90 | 91 | SAXParserFactory factory = SAXParserFactory.newInstance(); 92 | SAXParser parser = factory.newSAXParser(); 93 | parser.parse(in, sh); 94 | return sh.getColors(); 95 | } 96 | 97 | public static void dump(Writer w, Hashtable colors) 98 | throws IOException 99 | { 100 | PrintWriter pw = new PrintWriter(w); 101 | pw.println(""); 102 | pw.println(""); 103 | for (String key : colors.keySet()) 104 | { 105 | Color value = colors.get(key); 106 | String clr = String.format("#%02x%02x%02x%02x", value.getAlpha(), 107 | value.getRed(), value.getGreen(), value.getBlue()); 108 | pw.println("" + clr + ""); 109 | } 110 | pw.println(""); 111 | pw.flush(); 112 | w.flush(); 113 | } 114 | } 115 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/util/DisplayMetrics.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * DisplayMetrics.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.util; 13 | 14 | import org.droiddraw.property.StringProperty; 15 | 16 | public class DisplayMetrics 17 | { 18 | public static float density = 1.0f; 19 | public static float scaledDensity = 1.0f; 20 | public static float xdpi = 160; 21 | public static float ydpi = 160; 22 | 23 | public static final float MM_TO_IN = 0.0393700787f; 24 | public static final float PT_TO_IN = 1 / 72.0f; 25 | 26 | public static int readSize(StringProperty prop) 27 | { 28 | return readSize(prop.getStringValue()); 29 | } 30 | 31 | public static int readSize(String sz) 32 | { 33 | if (sz == null) 34 | return -1; 35 | try 36 | { 37 | float size; 38 | if (sz.endsWith("dip")) 39 | size = Float.parseFloat(sz.substring(0, sz.length() - 3)); 40 | else 41 | size = Float.parseFloat(sz.substring(0, sz.length() - 2)); 42 | 43 | if (sz.endsWith("px")) 44 | { 45 | return (int) size; 46 | } 47 | else if (sz.endsWith("in")) 48 | { 49 | return (int) (size * xdpi); 50 | } 51 | else if (sz.endsWith("mm")) 52 | { 53 | return (int) (size * MM_TO_IN * xdpi); 54 | } 55 | else if (sz.endsWith("pt")) 56 | { 57 | return (int) (size * PT_TO_IN * xdpi); 58 | } 59 | else if (sz.endsWith("dp") || sz.endsWith("dip")) 60 | { 61 | return (int) (size * density); 62 | } 63 | else if (sz.endsWith("sp")) 64 | { 65 | return (int) (size * scaledDensity); 66 | } 67 | else 68 | { 69 | return Integer.parseInt(sz); 70 | } 71 | } 72 | catch (NumberFormatException ex) 73 | { 74 | return -1; 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/util/FileCopier.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * FileCopier.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.util; 13 | 14 | import java.io.BufferedInputStream; 15 | import java.io.File; 16 | import java.io.FileInputStream; 17 | import java.io.FileOutputStream; 18 | import java.io.IOException; 19 | 20 | public class FileCopier 21 | { 22 | public static void copy(File file, File dir, boolean overwrite) 23 | throws IOException 24 | { 25 | BufferedInputStream bis = new BufferedInputStream(new FileInputStream( 26 | file)); 27 | File out = new File(dir, file.getName()); 28 | if (out.exists() && !overwrite) 29 | { 30 | throw new IOException("File: " + out + " already exists."); 31 | } 32 | FileOutputStream fos = new FileOutputStream(out, false); 33 | 34 | byte[] block = new byte[4096]; 35 | int read = bis.read(block); 36 | while (read != -1) 37 | { 38 | fos.write(block, 0, read); 39 | read = bis.read(block); 40 | } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/util/FileFilterExtension.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * FileFilterExtension.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.util; 13 | 14 | /** 15 | * 16 | * @author SubOptimal 17 | */ 18 | import java.io.File; 19 | 20 | import javax.swing.filechooser.FileFilter; 21 | 22 | final public class FileFilterExtension extends FileFilter 23 | { 24 | 25 | private String fileExtension; 26 | private String filterDescription; 27 | 28 | public FileFilterExtension(String extension, String description) 29 | { 30 | this.fileExtension = extension; 31 | this.filterDescription = description; 32 | } 33 | 34 | public boolean accept(File file) 35 | { 36 | return file.isDirectory() || file.getName().endsWith(fileExtension); 37 | } 38 | 39 | public String getDescription() 40 | { 41 | return filterDescription; 42 | } 43 | 44 | public String getExtension() 45 | { 46 | return fileExtension; 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/util/LayoutUploader.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * LayoutUploader.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.util; 13 | 14 | import java.io.BufferedReader; 15 | import java.io.ByteArrayInputStream; 16 | import java.io.File; 17 | import java.io.FileInputStream; 18 | import java.io.IOException; 19 | import java.io.InputStream; 20 | import java.io.InputStreamReader; 21 | import java.io.OutputStream; 22 | import java.net.InetAddress; 23 | import java.net.Socket; 24 | import java.net.UnknownHostException; 25 | 26 | public class LayoutUploader 27 | { 28 | 29 | public static boolean upload(String host, int port, String layout) 30 | throws IOException, UnknownHostException 31 | { 32 | return upload(host, port, new ByteArrayInputStream(layout.getBytes())); 33 | } 34 | 35 | public static boolean upload(String host, int port, File f) 36 | throws IOException, UnknownHostException 37 | { 38 | return upload(host, port, new FileInputStream(f)); 39 | } 40 | 41 | public static boolean upload(String host, int port, InputStream layout) 42 | throws IOException, UnknownHostException 43 | { 44 | InetAddress addr = InetAddress.getByName(host); 45 | return upload(addr, port, layout); 46 | } 47 | 48 | public static boolean upload(InetAddress addr, int port, InputStream layout) 49 | throws IOException 50 | { 51 | Socket s = new Socket(addr, port); 52 | OutputStream os = s.getOutputStream(); 53 | BufferedReader in = new BufferedReader(new InputStreamReader(s 54 | .getInputStream())); 55 | String line = in.readLine(); 56 | if (line == null || line.startsWith("Denied")) 57 | { 58 | return false; 59 | } 60 | 61 | byte[] buff = new byte[1024]; 62 | int read = layout.read(buff); 63 | while (read != -1) 64 | { 65 | os.write(buff, 0, read); 66 | read = layout.read(buff); 67 | } 68 | os.flush(); 69 | s.close(); 70 | return true; 71 | } 72 | 73 | public static void main(String[] args) 74 | throws IOException, UnknownHostException 75 | { 76 | upload(args[0], Integer.parseInt(args[1]), new File(args[2])); 77 | } 78 | } 79 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/util/StringHandler.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * StringHandler.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.util; 13 | 14 | import java.io.IOException; 15 | import java.io.InputStream; 16 | import java.io.PrintWriter; 17 | import java.io.Writer; 18 | import java.util.Hashtable; 19 | import javax.xml.parsers.*; 20 | import org.xml.sax.*; 21 | import org.xml.sax.helpers.DefaultHandler; 22 | 23 | public class StringHandler extends DefaultHandler 24 | { 25 | Hashtable strings; 26 | StringBuffer buff; 27 | String name; 28 | 29 | public StringHandler() 30 | { 31 | strings = new Hashtable(); 32 | buff = new StringBuffer(); 33 | } 34 | 35 | @Override 36 | public void characters(char arg0[], int arg1, int arg2) 37 | { 38 | buff.append(arg0, arg1, arg2); 39 | } 40 | 41 | @Override 42 | public void startDocument() 43 | { 44 | strings.clear(); 45 | } 46 | 47 | @Override 48 | public void startElement(String ns, String lName, String qName, 49 | Attributes atts) 50 | { 51 | buff.setLength(0); 52 | if (qName.equals("string")) 53 | name = atts.getValue("name"); 54 | } 55 | 56 | @Override 57 | public void endElement(String uri, String localName, String qName) 58 | { 59 | if (qName.equals("string")) 60 | { 61 | String str = buff.toString(); 62 | while (str.indexOf("\\u") != -1) 63 | { 64 | int ix = str.indexOf("\\u"); 65 | int code = Integer.parseInt(str.substring(ix + 2, ix + 6), 16); 66 | str = str.substring(0, ix) + (char) code 67 | + str.substring(ix + 6); 68 | } 69 | while (str.indexOf("\\n") != -1) 70 | { 71 | str = str.replace("\\n", "\n"); 72 | } 73 | strings.put(name, str); 74 | } 75 | } 76 | 77 | public Hashtable getStrings() 78 | { 79 | return strings; 80 | } 81 | 82 | public static Hashtable load(InputStream is) 83 | throws SAXException, ParserConfigurationException, IOException 84 | { 85 | return load(new InputSource(is)); 86 | } 87 | 88 | public static Hashtable load(InputSource in) 89 | throws SAXException, ParserConfigurationException, IOException 90 | { 91 | StringHandler sh = new StringHandler(); 92 | SAXParserFactory factory = SAXParserFactory.newInstance(); 93 | SAXParser parser = factory.newSAXParser(); 94 | parser.parse(in, sh); 95 | return sh.getStrings(); 96 | } 97 | 98 | public static void dump(Writer w, Hashtable strings) 99 | throws IOException 100 | { 101 | PrintWriter pw = new PrintWriter(w); 102 | pw.println(""); 103 | pw.println(""); 104 | for (String key : strings.keySet()) 105 | { 106 | String value = strings.get(key); 107 | pw.println("" + value + ""); 108 | } 109 | pw.println(""); 110 | pw.flush(); 111 | w.flush(); 112 | } 113 | 114 | } 115 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/AbsoluteLayout.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * AbsoluteLayout.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.util.Vector; 15 | 16 | import org.droiddraw.AndroidEditor; 17 | import org.droiddraw.property.Property; 18 | import org.droiddraw.property.StringProperty; 19 | 20 | public class AbsoluteLayout extends AbstractLayout 21 | { 22 | public static final String TAG_NAME = "AbsoluteLayout"; 23 | 24 | public AbsoluteLayout() 25 | { 26 | super(TAG_NAME); 27 | 28 | // 设置图标,方便ui设计时进行辨识 29 | this.setIconInTools( 30 | org.droiddraw.resource.IconFactory.getInstance().getAbsoluteLayout_small_Icon().getImage()); 31 | } 32 | 33 | @Override 34 | public void positionWidget(Widget w) 35 | { 36 | apply(); 37 | } 38 | 39 | @Override 40 | public void repositionAllWidgets() 41 | { 42 | apply(); 43 | } 44 | 45 | public void addOutputProperties(Widget w, Vector properties) 46 | { 47 | String unit = AndroidEditor.instance().getScreenUnit(); 48 | addOrUpdateProperty(properties, new StringProperty("X Position", 49 | "android:layout_x", w.getX() + unit, false)); 50 | addOrUpdateProperty(properties, new StringProperty("Y Position", 51 | "android:layout_y", w.getY() + unit, false)); 52 | } 53 | 54 | public void addEditableProperties(Widget w) 55 | { 56 | } 57 | 58 | public void removeEditableProperties(Widget w) 59 | { 60 | } 61 | 62 | @Override 63 | public void apply() 64 | { 65 | super.apply(); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/AutoCompleteTextView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * AutoCompleteTextView.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import org.droiddraw.property.StringProperty; 15 | 16 | public class AutoCompleteTextView extends EditView 17 | { 18 | public static final String TAG_NAME = "AutoCompleteTextView"; 19 | 20 | public AutoCompleteTextView(String txt) 21 | { 22 | super(txt); 23 | setTagName(TAG_NAME); 24 | 25 | props.add(new StringProperty("Completion Hint", "android:completionHint", "")); 26 | props.add(new StringProperty("Hint Size", "android:completionHintSize", "")); 27 | props.add(new StringProperty("Completion Threshold", "android:completionThreshold", "")); 28 | 29 | apply(); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/Button.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * Button.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Graphics2D; 17 | 18 | import org.droiddraw.AndroidEditor; 19 | import org.droiddraw.gui.ImageResources; 20 | import org.droiddraw.gui.NineWayImage; 21 | import org.droiddraw.property.StringProperty; 22 | import org.droiddraw.resource.WidgetDefaultNPIconFactory; 23 | import org.jb2011.ninepatch4j.NinePatch; 24 | 25 | public class Button extends TextView 26 | { 27 | public static final String TAG_NAME = "Button"; 28 | // NineWayImage img; 29 | protected NinePatch img_base; 30 | StringProperty onClick; 31 | 32 | public final static int DEFAULT_CONTENT_HEIGHT = 38; 33 | 34 | public Button(String txt) 35 | { 36 | super(txt); 37 | this.setTagName(TAG_NAME); 38 | 39 | pad_x = 10; 40 | pad_y = 0; 41 | 42 | img_base = null; 43 | String theme = AndroidEditor.instance().getTheme(); 44 | if (theme == null || theme.equals("default")) 45 | { 46 | img_base = WidgetDefaultNPIconFactory.getInstance().getButton_normal(); 47 | // ImageResources.instance().getImage( 48 | // "def/btn_default_normal.9"); 49 | // if (img_base != null) 50 | // { 51 | // this.img = new NineWayImage(img_base, 10, 10); 52 | // } 53 | } 54 | // else if (theme.equals("light")) 55 | // { 56 | // img_base = ImageResources.instance().getImage( 57 | // "light/button_background_normal.9"); 58 | // if (img_base != null) 59 | // { 60 | // this.img = new NineWayImage(img_base, 10, 10); 61 | // } 62 | // } 63 | this.onClick = new StringProperty("OnClick",//"Click Listener Classname", 64 | "android:onClickListener", null); 65 | addProperty(onClick); 66 | apply(); 67 | } 68 | 69 | @Override 70 | public void apply() 71 | { 72 | super.apply(); 73 | this.baseline = fontSize + 2; 74 | } 75 | 76 | @Override 77 | protected int getContentHeight() 78 | { 79 | if (img_base != null) 80 | return DEFAULT_CONTENT_HEIGHT; 81 | // return img_base.getHeight() - 4;//.getHeight(null) - 4; 82 | else 83 | return 10; 84 | } 85 | 86 | /** 87 | * 提取出本方法为了赋予子类自由决定(而不一定非 88 | * 得像Button一样)contentWidth的能力. 89 | * 90 | * @return 91 | */ 92 | protected int getContentWidthImpl() 93 | { 94 | int w = super.getContentWidth(); 95 | if (img_base != null && w < img_base.getWidth()) 96 | return img_base.getWidth(); 97 | return w; 98 | } 99 | @Override 100 | protected int getContentWidth() 101 | { 102 | return getContentWidthImpl()+10;// 10是delta增益值,为了好看而已 103 | } 104 | 105 | protected void paintNormalBorder(Graphics g) 106 | { 107 | // 本widget在未选中时不需要绘制border的哦 108 | } 109 | 110 | @Override 111 | public void paint(Graphics g) 112 | { 113 | // 绘制背景 114 | super.paintBackground(g); 115 | 116 | // 处于可见状态才填充内容 117 | if(this.isVisible()) 118 | { 119 | if (img_base == null) 120 | { 121 | g.setColor(Color.white); 122 | g.fillRoundRect(getX(), getY(), getWidth(), getHeight(), 8, 8); 123 | 124 | g.setColor(Color.black); 125 | g.drawRoundRect(getX(), getY(), getWidth(), getHeight(), 8, 8); 126 | } 127 | else 128 | { 129 | // img_base.paint(g, getX(), getY(), getWidth(), getHeight()); 130 | img_base.draw((Graphics2D)g, getX(), getY(), getWidth(), getHeight()); 131 | g.setColor(Color.black); 132 | } 133 | } 134 | 135 | g.setFont(f); 136 | // int w = g.getFontMetrics(f).stringWidth(text.getStringValue()); 137 | g.setColor(textColor.getColorValue()); 138 | 139 | drawText(g, 0, getHeight() / 2 + fontSize / 2 - 2, CENTER); 140 | // g.drawString(text.getStringValue(), getX()+getWidth()/2-w/2, 141 | // getY()+fontSize+2); 142 | } 143 | } 144 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/CheckBox.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * CheckBox.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Graphics2D; 17 | import java.awt.Image; 18 | 19 | import org.droiddraw.AndroidEditor; 20 | import org.droiddraw.gui.ImageResources; 21 | 22 | import com.jb2011.drioduibuilder.util.Utils; 23 | 24 | public class CheckBox extends CompoundButton 25 | { 26 | public static final String TAG_NAME = "CheckBox"; 27 | Image off; 28 | Image on; 29 | 30 | public CheckBox(String text) 31 | { 32 | super(text); 33 | setTagName(TAG_NAME); 34 | 35 | apply(); 36 | } 37 | 38 | @Override 39 | public void apply() 40 | { 41 | String theme = AndroidEditor.instance().getTheme(); 42 | if (theme == null || theme.equals("default")) 43 | { 44 | off = ImageResources.instance().getImage("def/btn_check_off"); 45 | on = ImageResources.instance().getImage("def/btn_check_on"); 46 | } 47 | else if (theme.equals("light")) 48 | { 49 | off = ImageResources.instance().getImage( 50 | "light/checkbox_off_background"); 51 | on = ImageResources.instance().getImage( 52 | "light/checkbox_on_background"); 53 | } 54 | 55 | if (off != null) 56 | { 57 | pad_x = off.getWidth(null); 58 | } 59 | else 60 | { 61 | pad_x = 24; 62 | } 63 | super.apply(); 64 | } 65 | 66 | @Override 67 | protected int getContentWidth() 68 | { 69 | return getContentWidthImpl(); 70 | } 71 | 72 | @Override 73 | protected int getContentHeight() 74 | { 75 | if (off != null) 76 | return off.getHeight(null); 77 | else 78 | return super.getContentHeight(); 79 | } 80 | 81 | @Override 82 | public void paint(Graphics g) 83 | { 84 | // 绘制背景 85 | super.paintBackground(g);// 注意:不能调用super.paint()哦 86 | 87 | Image img; 88 | int off_x; 89 | int off_y; 90 | 91 | if (on == null || off == null) 92 | { 93 | g.setColor(Color.white); 94 | g.fillRect(getX() + 2, getY() + 2, 16, 16); 95 | 96 | g.setColor(Color.black); 97 | g.drawRect(getX() + 2, getY() + 2, 16, 16); 98 | 99 | if ("true".equals(this.getPropertyByAttName("android:checked") 100 | .getValue())) 101 | { 102 | g.drawLine(getX() + 2, getY() + 2, getX() + 18, getY() + 18); 103 | g.drawLine(getX() + 2, getY() + 18, getX() + 18, getY() + 2); 104 | } 105 | off_x = 20; 106 | off_y = 18; 107 | } 108 | else 109 | { 110 | if ("true".equals(this.getPropertyByAttName("android:checked") 111 | .getValue())) 112 | { 113 | img = on; 114 | } 115 | else 116 | { 117 | img = off; 118 | } 119 | g.drawImage(img, getX(), getY(), null); 120 | g.setColor(Color.black); 121 | off_x = img.getWidth(null); 122 | off_y = img.getHeight(null); 123 | } 124 | 125 | baseline = (off_y + fontSize) / 2; 126 | setTextColor(g); 127 | g.setFont(f); 128 | // 开启字体绘制反走样 129 | Utils.setTextAntiAliasing((Graphics2D)g, true); 130 | g.drawString(text.getStringValue(), getX() + off_x, getY() + baseline - 4); 131 | // 绘制完成后并闭字体绘制反走样 132 | Utils.setTextAntiAliasing((Graphics2D)g, false); 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/CompoundButton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * CompoundButton.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import org.droiddraw.property.BooleanProperty; 15 | 16 | public class CompoundButton extends Button 17 | { 18 | public CompoundButton(String text) 19 | { 20 | super(text); 21 | addProperty(new BooleanProperty("Checked", "android:checked", false)); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/DigitalClock.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * DigitalClock.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | 16 | public class DigitalClock extends TextView 17 | { 18 | public static final String TAG_NAME = "DigitalClock"; 19 | 20 | public DigitalClock() 21 | { 22 | super(null);//"HH:MM:SS pm"); 23 | this.setTagName(TAG_NAME); 24 | setDate(); 25 | } 26 | 27 | private void setDate() 28 | { 29 | text.setStringValue( 30 | new java.text.SimpleDateFormat("hh:mm:ss"). 31 | // 因为使用的是DroidSans字体,而经此form后pm会被解析成“下午”等 32 | // 为了不出现乱码(DroidSans字体是英文字体),干脆就固定加个尾巴 33 | // 吧(虽不正确但ui设计应该是够用了) 34 | format(new java.util.Date())+" pm"); 35 | // DateFormat.getTimeInstance(DateFormat.SHORT) 36 | // .format(new Date())); 37 | } 38 | 39 | @Override 40 | public void paint(Graphics g) 41 | { 42 | setDate(); 43 | super.paint(g); 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/FrameLayout.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * FrameLayout.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.util.Vector; 15 | 16 | import org.droiddraw.property.Property; 17 | 18 | public class FrameLayout extends AbstractLayout 19 | { 20 | 21 | public static final String TAG_NAME = "FrameLayout"; 22 | 23 | public FrameLayout() 24 | { 25 | super(TAG_NAME); 26 | 27 | // 设置图标,方便ui设计时进行辨识 28 | this.setIconInTools( 29 | org.droiddraw.resource.IconFactory.getInstance() 30 | .getFrameLayout_small_Icon().getImage()); 31 | } 32 | 33 | public void addEditableProperties(Widget w) 34 | { 35 | } 36 | 37 | @Override 38 | public void positionWidget(Widget w) 39 | { 40 | w.setPosition(0, 0); 41 | } 42 | 43 | public void removeEditableProperties(Widget w) 44 | { 45 | } 46 | 47 | @Override 48 | public void repositionAllWidgets() 49 | { 50 | for (Widget w : widgets) 51 | { 52 | w.setPosition(0, 0); 53 | } 54 | } 55 | 56 | public void addOutputProperties(Widget w, Vector properties) 57 | { 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/Gallery.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * Gallery.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Image; 17 | 18 | import org.droiddraw.gui.ImageResources; 19 | import org.droiddraw.property.IntProperty; 20 | 21 | import com.jb2011.drioduibuilder.util.Utils; 22 | 23 | public class Gallery extends AbstractWidget 24 | { 25 | 26 | public static final String TAG_NAME = "Gallery"; 27 | public static String[] propertyNames = { "android:spacing", 28 | "android:animationDuration" }; 29 | 30 | IntProperty spacing; 31 | IntProperty animationDuration; 32 | 33 | Image paint; 34 | 35 | public Gallery() 36 | { 37 | super(TAG_NAME); 38 | paint = ImageResources.instance().getImage("gallery");//"paint"); 39 | 40 | animationDuration = new IntProperty("Anim. Duration", 41 | "android:animationDuration", 200); 42 | spacing = new IntProperty("Spacing", "android:spacing", 0); 43 | 44 | addProperty(animationDuration); 45 | addProperty(spacing); 46 | apply(); 47 | } 48 | 49 | @Override 50 | protected int getContentHeight() 51 | { 52 | return 200; 53 | } 54 | 55 | @Override 56 | protected int getContentWidth() 57 | { 58 | return 300; 59 | } 60 | 61 | protected void paintNormalBorder(Graphics g) 62 | { 63 | // 本widget在未选中时不需要绘制border的哦 64 | } 65 | 66 | public void paint(Graphics g) 67 | { 68 | // 绘制背景 69 | super.paintBackground(g); 70 | 71 | // int w1 = getWidth() / 4; 72 | // int w2 = getWidth() / 3; 73 | // int off_x = 74 | // (getWidth() - w1 * 2 - w2 - spacing.getIntValue() * 2) / 2 75 | // + 13; // delta 76 | 77 | if (paint != null) 78 | { 79 | // g.drawImage(paint, getX() + off_x, getY(), w1, w1, null); 80 | // g.drawImage(paint, getX() + off_x + spacing.getIntValue() * 2 + w1 + w2 81 | // - 26 // delta 82 | // , getY(), w1, w1, null); 83 | // g.drawImage(paint, getX() + off_x + spacing.getIntValue() + w1 84 | // - 13 // delta 85 | // , getY() + 2, w2, w2, null); 86 | g.drawImage(paint, getX(), getY() +2 87 | , getWidth(), getHeight()-15, null); 88 | } 89 | g.setColor(this.isInDesignViewer()?Color.LIGHT_GRAY:Color.black);//Color.black); 90 | final String showName = "Gallery"; 91 | g.drawString(showName, 92 | getX() + (getWidth()-Utils.getStrPixWidth(g.getFont(), showName))/2 93 | // + getWidth() / 2 94 | // - 19 // delta 95 | , getY() + getHeight() 96 | - 4); // delta 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/GridView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * GridView.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Image; 17 | 18 | import org.droiddraw.AndroidEditor; 19 | import org.droiddraw.gui.ImageResources; 20 | import org.droiddraw.property.IntProperty; 21 | import org.droiddraw.property.StringProperty; 22 | import org.droiddraw.property.WidthProperty; 23 | 24 | public class GridView extends AbstractWidget 25 | { 26 | 27 | public static final String TAG_NAME = "GridView"; 28 | 29 | IntProperty columnCount; 30 | StringProperty columnWidth; 31 | WidthProperty hSpacing, vSpacing; 32 | /** 该wdiget位于工具面板时的效果图 */ 33 | private static Image imgInTools = null; 34 | 35 | public static final String[] propertyNames = { "android:numColumns", 36 | "android:columnWidth", "android:horizontalSpacing", 37 | "android:verticalSpacing" }; 38 | 39 | public GridView() 40 | { 41 | super(TAG_NAME); 42 | columnCount = new IntProperty("Columns", "android:numColumns", -1); 43 | columnCount.setIntValue(5); 44 | columnWidth = new StringProperty("Column Width", "android:columnWidth", 45 | ""); 46 | columnWidth.setStringValue("20" 47 | + AndroidEditor.instance().getScreenUnit()); 48 | hSpacing = new WidthProperty("Horiz. Spacing", 49 | "android:horizontalSpacing", 0); 50 | vSpacing = new WidthProperty("Vert. Spacing", 51 | "android:verticalSpacing", 0); 52 | 53 | addProperty(columnCount); 54 | addProperty(columnWidth); 55 | addProperty(hSpacing); 56 | addProperty(vSpacing); 57 | 58 | if(imgInTools == null) 59 | imgInTools = ImageResources.instance().getImage("gridview_small"); 60 | 61 | apply(); 62 | } 63 | 64 | @Override 65 | protected int getContentHeight() 66 | { 67 | return 50; 68 | } 69 | 70 | @Override 71 | protected int getContentWidth() 72 | { 73 | int cols = columnCount.getIntValue(); 74 | int w = removeUnit(columnWidth.getStringValue()); 75 | if (cols * w > 50) 76 | { 77 | return cols * w; 78 | } 79 | else 80 | return 50; 81 | } 82 | 83 | protected void paintNormalBorder(Graphics g) 84 | { 85 | if(this.isInDesignViewer()) 86 | super.paintNormalBorder(g); 87 | // 本widget在tools面板中不需要绘制border的哦 88 | else 89 | ; 90 | } 91 | 92 | public void paint(Graphics g) 93 | { 94 | // 绘制背景 95 | super.paintBackground(g); 96 | 97 | // 该wdiget位于工具面板时 98 | if(!this.isInDesignViewer() && imgInTools != null) 99 | { 100 | g.drawImage(imgInTools, getX(), getY(), getWidth(), getHeight(), null); 101 | } 102 | else 103 | { 104 | g.setColor(Color.lightGray); 105 | g.drawString("GridView", getX() + 3, getY() + 16); 106 | 107 | g.setColor(Color.lightGray); 108 | for (int i = 1; i < columnCount.getIntValue(); i++) 109 | { 110 | int x = getX() + i * removeUnit(columnWidth.getStringValue()); 111 | g.drawLine(x, getY(), x, getY() + getHeight()); 112 | if (hSpacing.getIntValue() > 0) 113 | { 114 | x += hSpacing.getIntValue(); 115 | g.drawLine(x, getY(), x, getY() + getHeight()); 116 | } 117 | } 118 | } 119 | } 120 | 121 | private int removeUnit(String propertyValue) 122 | { 123 | int ix = propertyValue.indexOf("px"); 124 | if (ix == -1) 125 | { 126 | ix = propertyValue.indexOf("dp"); 127 | } 128 | if (ix == -1) 129 | { 130 | ix = propertyValue.indexOf("dip"); 131 | } 132 | if (ix != -1) 133 | { 134 | propertyValue = propertyValue.substring(0, ix); 135 | } 136 | return Integer.parseInt(propertyValue); 137 | } 138 | } 139 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/ImageButton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ImageButton.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | import java.awt.Graphics2D; 16 | 17 | import org.droiddraw.AndroidEditor; 18 | import org.droiddraw.resource.WidgetDefaultNPIconFactory; 19 | import org.jb2011.ninepatch4j.NinePatch; 20 | 21 | public class ImageButton extends ImageView 22 | { 23 | public static final String TAG_NAME = "ImageButton"; 24 | // NineWayImage img; 25 | NinePatch img_base; 26 | int cw; 27 | 28 | public ImageButton() 29 | { 30 | img_base = null; 31 | String theme = AndroidEditor.instance().getTheme(); 32 | if (theme == null || theme.equals("default")) 33 | { 34 | img_base = WidgetDefaultNPIconFactory.getInstance().getButton_normal(); 35 | // ImageResources.instance().getImage( 36 | // "def/btn_default_normal.9"); 37 | // if (img_base != null) 38 | // { 39 | // this.img = new NineWayImage(img_base, 10, 10); 40 | // } 41 | cw = 40;//50; 42 | } 43 | // else if (theme.equals("light")) 44 | // { 45 | // img_base = ImageResources.instance().getImage( 46 | // "light/button_background_normal.9"); 47 | // if (img_base != null) 48 | // { 49 | // this.img = new NineWayImage(img_base, 10, 10); 50 | // } 51 | // cw = 50; 52 | // } 53 | this.setTagName(TAG_NAME); 54 | apply(); 55 | } 56 | 57 | @Override 58 | protected int getContentHeight() 59 | { 60 | return cw; 61 | } 62 | 63 | @Override 64 | protected int getContentWidth() 65 | { 66 | return cw; 67 | } 68 | 69 | protected void paintNormalBorder(Graphics g) 70 | { 71 | // 本widget在未选中时不需要绘制border的哦 72 | } 73 | 74 | @Override 75 | public void paint(Graphics g) 76 | { 77 | // 绘制背景 78 | super.paintBackground(g); 79 | 80 | if (img_base != null) 81 | { 82 | // img.paint(g, getX(), getY(), getWidth(), getHeight()); 83 | img_base.draw((Graphics2D)g, getX(), getY(), getWidth(), getHeight()); 84 | } 85 | if (super.img != null) 86 | { 87 | g.drawImage(super.img, getX() + 5, getY() + 5, getWidth() - 10, 88 | getHeight() - 10, null); 89 | } 90 | else if (paint != null) 91 | { 92 | g.drawImage(paint, getX() + 5, getY() + 5, getWidth() - 10, 93 | getHeight() - 10, null); 94 | } 95 | } 96 | } 97 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/ImageSwitcher.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ImageSwitcher.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | public class ImageSwitcher extends FrameLayout 15 | { 16 | public static final String TAG_NAME = "ImageSwitcher"; 17 | 18 | public ImageSwitcher() 19 | { 20 | super(); 21 | this.setTagName(TAG_NAME); 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/ImageView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ImageView.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | import java.awt.Graphics2D; 16 | import java.awt.Image; 17 | import java.awt.image.BufferedImage; 18 | 19 | import org.droiddraw.AndroidEditor; 20 | import org.droiddraw.gui.ImageResources; 21 | import org.droiddraw.property.ImageProperty; 22 | import org.droiddraw.resource.WidgetDefaultNPIconFactory; 23 | import org.jb2011.ninepatch4j.NinePatch; 24 | 25 | public class ImageView extends AbstractWidget 26 | { 27 | public static final String TAG_NAME = "ImageView"; 28 | Image paint; 29 | BufferedImage img; 30 | 31 | ImageProperty src; 32 | /** 33 | * 本widget处于工具面板时绘制背景使用的NP图. 34 | * 该背景仅为了出于美感而作,别无它用,并不对应于该widget在android真机上的效果哦. 35 | */ 36 | protected NinePatch bgInTools = null; 37 | 38 | public ImageView() 39 | { 40 | super(TAG_NAME); 41 | paint = ImageResources.instance().getImage("paint"); 42 | bgInTools = WidgetDefaultNPIconFactory.getInstance().getTextView_normal(); 43 | src = new ImageProperty("Image Source", "android:src", ""); 44 | addProperty(src); 45 | apply(); 46 | } 47 | 48 | @Override 49 | protected int getContentHeight() 50 | { 51 | if (img == null) 52 | return 30; 53 | else 54 | return img.getHeight(); 55 | } 56 | 57 | @Override 58 | protected int getContentWidth() 59 | { 60 | if (img == null) 61 | return 30; 62 | else 63 | return img.getWidth(); 64 | } 65 | 66 | @Override 67 | public void apply() 68 | { 69 | super.apply(); 70 | if (src.getStringValue() != null 71 | && src.getStringValue().startsWith("@drawable")) 72 | { 73 | img = AndroidEditor.instance().findDrawable(src.getStringValue()); 74 | } 75 | } 76 | 77 | public void paint(Graphics g) 78 | { 79 | // 仅在本widget处于工具面板时绘制 80 | if(!this.isInDesignViewer()) 81 | { 82 | if (bgInTools != null) 83 | bgInTools.draw((Graphics2D)g, getX(), getY(), getWidth(), getHeight()); 84 | 85 | // 出一个默认图片,方便用户例谡widget,仅此而已 86 | if (paint != null) 87 | g.drawImage(paint, getX()+10, getY() +4 88 | , paint.getWidth(null)-5 , paint.getHeight(null)-5 , null); 89 | } 90 | else 91 | { 92 | // 绘制背景 93 | super.paintBackground(g); 94 | 95 | if (img != null) 96 | g.drawImage(img, getX(), getY(), getWidth(), getHeight(), null); 97 | // 如果该widget没有设置@drawable/中的图片,则画一个默认图片方便设计 98 | else if (paint != null) 99 | g.drawImage(paint, getX(), getY(), getWidth(), getHeight(), null); 100 | } 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/Layout.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * Layout.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.util.Vector; 15 | 16 | import org.droiddraw.property.Property; 17 | 18 | public interface Layout extends Widget 19 | { 20 | public void addWidget(Widget w); 21 | 22 | public Vector getWidgets(); 23 | 24 | public void removeWidget(Widget w); 25 | 26 | public void positionWidget(Widget w); 27 | 28 | public void repositionAllWidgets(); 29 | 30 | public void addOutputProperties(Widget w, Vector properties); 31 | 32 | public void addEditableProperties(Widget w); 33 | 34 | public void removeEditableProperties(Widget w); 35 | 36 | public void removeAllWidgets(); 37 | 38 | public boolean containsWidget(Widget w); 39 | 40 | public int getScreenX(); 41 | 42 | public int getScreenY(); 43 | 44 | public void resizeForRendering(); 45 | 46 | public void clearRendering(); 47 | } 48 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/LayoutEnumeration.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * LayoutEnumeration.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.util.Enumeration; 15 | import java.util.Iterator; 16 | 17 | import javax.swing.tree.TreeNode; 18 | 19 | public class LayoutEnumeration implements Enumeration 20 | { 21 | Iterator widgets; 22 | 23 | public LayoutEnumeration(Layout l) 24 | { 25 | this.widgets = l.getWidgets().iterator(); 26 | } 27 | 28 | public boolean hasMoreElements() 29 | { 30 | return widgets.hasNext(); 31 | } 32 | 33 | public TreeNode nextElement() 34 | { 35 | Widget w = widgets.next(); 36 | if (w instanceof Layout) 37 | { 38 | return new LayoutTreeNode((Layout) w); 39 | } 40 | else 41 | { 42 | return new WidgetTreeNode(w); 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/LayoutTreeNode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * LayoutTreeNode.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.util.Enumeration; 15 | 16 | import javax.swing.tree.TreeNode; 17 | 18 | public class LayoutTreeNode extends WidgetTreeNode 19 | { 20 | Layout layout; 21 | 22 | public LayoutTreeNode(Layout layout) 23 | { 24 | super(layout); 25 | this.layout = layout; 26 | } 27 | 28 | public Enumeration children() 29 | { 30 | return new LayoutEnumeration(layout); 31 | } 32 | 33 | public boolean getAllowsChildren() 34 | { 35 | return true; 36 | } 37 | 38 | public TreeNode getChildAt(int childIndex) 39 | { 40 | Widget w = layout.getWidgets().elementAt(childIndex); 41 | if (w instanceof Layout) 42 | { 43 | return new LayoutTreeNode((Layout) w); 44 | } 45 | else 46 | { 47 | return new WidgetTreeNode(w); 48 | } 49 | } 50 | 51 | public int getChildCount() 52 | { 53 | return layout.getWidgets().size(); 54 | } 55 | 56 | public int getIndex(TreeNode node) 57 | { 58 | if (node instanceof WidgetTreeNode) 59 | { 60 | Widget w = ((WidgetTreeNode) node).getWidget(); 61 | return layout.getWidgets().indexOf(w); 62 | } 63 | return -1; 64 | } 65 | 66 | public boolean isLeaf() 67 | { 68 | return true; 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/ListView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ListView.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Image; 17 | 18 | import org.droiddraw.gui.ImageResources; 19 | import org.droiddraw.property.BooleanProperty; 20 | import org.droiddraw.property.SelectProperty; 21 | import org.droiddraw.property.StringProperty; 22 | 23 | public class ListView extends AbstractWidget 24 | { 25 | public static final String TAG_NAME = "ListView"; 26 | /** 该wdiget位于工具面板时的效果图 */ 27 | private static Image imgInTools = null; 28 | 29 | public ListView() 30 | { 31 | super(TAG_NAME); 32 | props.add(new StringProperty("List Selector", "android:listSelector", "")); 33 | props.add(new BooleanProperty("Selector on Top", 34 | "android:drawSelectorOnTop", false)); 35 | 36 | props.add(new StringProperty("Entry Array Id.", "android:entries", "")); 37 | props.add(new SelectProperty("Entry Gravity", "android:gravity", 38 | new String[] { "left", "center", "right" }, 0)); 39 | 40 | if(imgInTools == null) 41 | imgInTools = ImageResources.instance().getImage("listview_small"); 42 | 43 | apply(); 44 | } 45 | 46 | @Override 47 | protected int getContentHeight() 48 | { 49 | return 16; 50 | } 51 | 52 | @Override 53 | protected int getContentWidth() 54 | { 55 | return 55; 56 | } 57 | 58 | protected void paintNormalBorder(Graphics g) 59 | { 60 | if(this.isInDesignViewer()) 61 | super.paintNormalBorder(g); 62 | // 本widget在tools面板中不需要绘制border的哦 63 | else 64 | ; 65 | } 66 | 67 | public void paint(Graphics g) 68 | { 69 | // 绘制背景 70 | super.paintBackground(g); 71 | 72 | // 该wdiget位于工具面板时 73 | if(!this.isInDesignViewer() && imgInTools != null) 74 | { 75 | g.drawImage(imgInTools, getX(), getY(), getWidth(), getHeight(), null); 76 | } 77 | else 78 | { 79 | g.setColor(Color.lightGray); 80 | g.drawString("ListView", getX() + 2, getY() + 14); 81 | // g.drawRect(getX(), getY(), getWidth(), getHeight()); 82 | } 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/MapView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * MapView.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | import java.awt.Image; 16 | import java.awt.image.BufferedImage; 17 | 18 | import org.droiddraw.gui.ImageResources; 19 | import org.droiddraw.property.BooleanProperty; 20 | import org.droiddraw.property.StringProperty; 21 | 22 | public class MapView extends AbstractWidget 23 | { 24 | private static Image map = null; 25 | public static final String TAG_NAME = "MapView"; 26 | 27 | BooleanProperty clickable = 28 | new BooleanProperty("Clickable","android:clickable", true); 29 | StringProperty apiKey = 30 | new StringProperty("API Key", "android:apiKey","none"); 31 | 32 | public MapView() 33 | { 34 | super(TAG_NAME); 35 | clickable = new BooleanProperty("Clickable", "android:clickable", true); 36 | apiKey = new StringProperty("API Key", "android:apiKey", "none"); 37 | clickable.setDefaulted(false); 38 | apiKey.setDefaulted(false); 39 | addProperty(clickable); 40 | addProperty(apiKey); 41 | widthProp.setStringValue("fill_parent"); 42 | heightProp.setStringValue("fill_parent"); 43 | apply(); 44 | if (map == null) 45 | { 46 | map = ImageResources.instance().getImage("mapview"); 47 | // map = new BufferedImage(img.getWidth(null), img.getHeight(null), 48 | // BufferedImage.TYPE_4BYTE_ABGR); 49 | // map.getGraphics().drawImage(img, 0, 0, null); 50 | } 51 | } 52 | 53 | @Override 54 | protected int getContentHeight() 55 | { 56 | return 100; 57 | } 58 | 59 | @Override 60 | protected int getContentWidth() 61 | { 62 | return 70; 63 | } 64 | 65 | public void paint(Graphics g) 66 | { 67 | // 绘制背景 68 | super.paintBackground(g); 69 | 70 | g.drawImage(map, getX(), getY(), getWidth(), getHeight(), null); 71 | } 72 | 73 | } 74 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/ProgressBar.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ProgressBar.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Image; 17 | 18 | import org.droiddraw.AndroidEditor; 19 | import org.droiddraw.gui.ImageResources; 20 | import org.droiddraw.property.BooleanProperty; 21 | import org.droiddraw.property.StringProperty; 22 | 23 | public class ProgressBar extends AbstractWidget 24 | { 25 | public static final String[] propertyNames = new String[] { 26 | "android:indeterminate", "android:max" }; 27 | public static final String TAG_NAME = "ProgressBar"; 28 | BooleanProperty indeterminate; 29 | Image base; 30 | Image dot; 31 | Image indet; 32 | 33 | public ProgressBar() 34 | { 35 | super(TAG_NAME); 36 | indeterminate = new BooleanProperty("Indeterminate", 37 | "android:indeterminate", false); 38 | addProperty(indeterminate); 39 | addProperty(new StringProperty("Max. Value", "android:max", "100")); 40 | apply(); 41 | String theme = AndroidEditor.instance().getTheme(); 42 | if (theme == null || theme.equals("default")) 43 | { 44 | base = ImageResources.instance().getImage( 45 | "def/progress_wheel_medium"); 46 | } 47 | else 48 | { 49 | base = ImageResources.instance().getImage( 50 | "light/progress_circular_background"); 51 | dot = ImageResources.instance().getImage("light/progress_particle"); 52 | indet = ImageResources.instance().getImage( 53 | "light/progress_circular_indeterminate"); 54 | } 55 | } 56 | 57 | @Override 58 | protected int getContentHeight() 59 | { 60 | return 48; 61 | } 62 | 63 | @Override 64 | protected int getContentWidth() 65 | { 66 | return 48; 67 | } 68 | 69 | protected void paintNormalBorder(Graphics g) 70 | { 71 | // 本widget在未选中时不需要绘制border的哦 72 | } 73 | 74 | public void paint(Graphics g) 75 | { 76 | // 绘制背景 77 | super.paintBackground(g); 78 | 79 | if (base == null) 80 | { 81 | g.setColor(Color.black); 82 | g.fillOval(getX(), getY(), getWidth(), getHeight()); 83 | g.setColor(Color.white); 84 | g.fillOval(getX() + getWidth() / 4, getY() + getHeight() / 4, 85 | getWidth() / 2, getHeight() / 2); 86 | g.fillOval(getX() + getWidth() / 3, getY(), getWidth() / 4 - 3, 87 | getHeight() / 4 - 3); 88 | } 89 | else 90 | { 91 | g.drawImage(base, getX(), getY(), getWidth(), getHeight(), null); 92 | if (indet != null) 93 | { 94 | if (indeterminate.getBooleanValue()) 95 | { 96 | g.drawImage(indet, getX(), getY(), getWidth(), getHeight(), 97 | null); 98 | } 99 | else 100 | { 101 | g.drawImage(dot, getX(), getY(), getWidth(), getHeight(), 102 | null); 103 | } 104 | } 105 | } 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/RadioButton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * RadioButton.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Graphics2D; 17 | import java.awt.Image; 18 | 19 | import org.droiddraw.AndroidEditor; 20 | import org.droiddraw.gui.ImageResources; 21 | 22 | import com.jb2011.drioduibuilder.util.Utils; 23 | 24 | public class RadioButton extends CompoundButton 25 | { 26 | public static final String TAG_NAME = "RadioButton"; 27 | Image on; 28 | Image off; 29 | 30 | public RadioButton(String text) 31 | { 32 | super(text); 33 | this.setTagName(TAG_NAME); 34 | 35 | pad_y = 6; 36 | 37 | apply(); 38 | } 39 | 40 | @Override 41 | public void apply() 42 | { 43 | String theme = AndroidEditor.instance().getTheme(); 44 | if (theme == null || theme.equals("default")) 45 | { 46 | off = ImageResources.instance().getImage("def/btn_radio_off"); 47 | on = ImageResources.instance().getImage("def/btn_radio_on"); 48 | } 49 | else if (theme.equals("light")) 50 | { 51 | off = ImageResources.instance().getImage( 52 | "light/radiobutton_off_background"); 53 | on = ImageResources.instance().getImage( 54 | "light/radiobutton_on_background"); 55 | } 56 | 57 | if (off != null) 58 | { 59 | pad_x = off.getWidth(null); 60 | } 61 | else 62 | { 63 | pad_x = 24; 64 | } 65 | super.apply(); 66 | } 67 | 68 | @Override 69 | protected int getContentWidth() 70 | { 71 | return getContentWidthImpl(); 72 | } 73 | 74 | @Override 75 | protected int getContentHeight() 76 | { 77 | if (off != null) 78 | return off.getHeight(null); 79 | else 80 | return super.getContentHeight(); 81 | } 82 | 83 | @Override 84 | public void paint(Graphics g) 85 | { 86 | // 绘制背景 87 | super.paintBackground(g); 88 | 89 | int off_x, off_y; 90 | 91 | if (off == null || on == null) 92 | { 93 | g.setColor(Color.white); 94 | g.fillOval(getX() + 2, getY() + 2, 16, 16); 95 | 96 | g.setColor(Color.black); 97 | g.drawOval(getX() + 2, getY() + 2, 16, 16); 98 | 99 | if ("true".equals(this.getPropertyByAttName("android:checked") 100 | .getValue())) 101 | { 102 | g.fillOval(getX() + 6, getY() + 6, 8, 8); 103 | } 104 | 105 | off_x = 20; 106 | off_y = 18; 107 | } 108 | else 109 | { 110 | Image img = off; 111 | if ("true".equals(this.getPropertyByAttName("android:checked") 112 | .getValue())) 113 | { 114 | img = on; 115 | } 116 | g.drawImage(img, getX(), getY(), null); 117 | g.setColor(Color.black); 118 | 119 | off_x = img.getWidth(null); 120 | off_y = img.getHeight(null); 121 | } 122 | 123 | baseline = (off_y + fontSize) / 2; 124 | 125 | setTextColor(g); 126 | g.setFont(f); 127 | // 开启字体绘制反走样 128 | Utils.setTextAntiAliasing((Graphics2D)g, true); 129 | g.drawString(text.getStringValue(), getX() + off_x, getY() + baseline - 4); 130 | // 绘制完成后并闭字体绘制反走样 131 | Utils.setTextAntiAliasing((Graphics2D)g, false); 132 | } 133 | } 134 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/RadioGroup.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * RadioGroup.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | import java.awt.Image; 16 | 17 | import org.droiddraw.gui.ImageResources; 18 | import org.droiddraw.property.StringProperty; 19 | 20 | public class RadioGroup extends LinearLayout 21 | { 22 | public static final String TAG_NAME = "RadioGroup"; 23 | StringProperty checkedItem; 24 | 25 | public RadioGroup() 26 | { 27 | super(); 28 | 29 | // 设置图标,方便ui设计时进行辨识 30 | this.setIconInTools(ImageResources.instance().getImage("def/radio_group")); 31 | 32 | checkedItem = new StringProperty("Default Button", 33 | "android:checkedButton", ""); 34 | // Defaults are different in RadioGroup *sigh* 35 | orientation.setDefaultIndex(1); 36 | orientation.setSelectedIndex(1); 37 | addProperty(checkedItem); 38 | this.setTagName(TAG_NAME); 39 | } 40 | 41 | @Override 42 | protected int getDefaultWrapContentHeight() 43 | { 44 | return 30; 45 | } 46 | 47 | @Override 48 | protected void paintText(Graphics g, Image iconInTools) 49 | { 50 | // 本组件为了好看一点,不绘制设计时的显示 51 | //文本(该 文本原本仅是为了方便便识widget之用) 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/RatingBar.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * RatingBar.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | import java.awt.Image; 16 | 17 | import org.droiddraw.gui.ImageResources; 18 | import org.droiddraw.property.BooleanProperty; 19 | import org.droiddraw.property.IntProperty; 20 | 21 | public class RatingBar extends ProgressBar 22 | { 23 | /** 默认每颗星宽度 */ 24 | public static final int DEFAULT_START_WIDTH = 42; 25 | Image star, star_half, start_off; 26 | IntProperty numStars; 27 | BooleanProperty indicator; 28 | // FloatProperty rating; 29 | // FloatProperty stepSize; 30 | 31 | public static final String TAG_NAME = "RatingBar"; 32 | public static final String[] propertyNames = new String[] { 33 | "android:numStars", "android:isIndicator", 34 | // "android:rating", 35 | // "android:stepSize" 36 | }; 37 | 38 | public RatingBar() 39 | { 40 | setTagName(TAG_NAME); 41 | star = ImageResources.instance().getImage("rate_star_big_on");//"rate_star_med_on"); 42 | star_half = ImageResources.instance().getImage("rate_star_big_half"); 43 | start_off = ImageResources.instance().getImage("rate_star_big_off"); 44 | numStars = new IntProperty("Number of Stars", "android:numStars", 5); 45 | // rating = new FloatProperty("Rating", "android:rating", 5.0f); 46 | // stepSize = new FloatProperty("Step Size", "android:stepSize", 1.0f); 47 | indicator = new BooleanProperty("User Editable", "android:isIndicator", true); 48 | addProperty(numStars); 49 | addProperty(indicator); 50 | // addProperty(rating); 51 | // addProperty(stepSize); 52 | } 53 | 54 | protected void paintNormalBorder(Graphics g) 55 | { 56 | // 本widget在未选中时不需要绘制border的哦 57 | } 58 | 59 | @Override 60 | public void paint(Graphics g) 61 | { 62 | // 绘制背景 63 | super.paintBackground(g); 64 | 65 | int width = 42; 66 | // 当位于工具箱时,为了美观,把全星和半星等机动组合绘制出来,好看一点 67 | if(!this.isInDesignViewer()) 68 | { 69 | // 当总星数小于1时强制为1、当总星数小于2时,off星数为0,否则余下全为off星数 70 | int off_num = numStars.getIntValue()<1?1:numStars.getIntValue()<3?0:numStars.getIntValue() - 2; 71 | // 2个及以上星时 72 | if(numStars.getIntValue()>=2) 73 | { 74 | // 第一颗星是实星 75 | g.drawImage(star, getX(), getY(), width, getHeight(),null); 76 | // // 第二颗星是实星 77 | // g.drawImage(star, getX()+ width, getY(), width, getHeight(),null); 78 | // 第二颗星是半星 79 | g.drawImage(star_half, getX()+ width*1, getY(), width, getHeight(),null); 80 | } 81 | 82 | // 以下off星在本widget处于tools面板时就不需要绘制了, 83 | // 主要是占空间,不利于ui组件布局,w仅此而已 84 | if(this.isInDesignViewer()) 85 | { 86 | // 余下全为off星 87 | for (int i = 0; i < numStars.getIntValue()-off_num; ++i) 88 | g.drawImage(start_off, getX() + width*(i+off_num), getY(), width, getHeight(),null); 89 | } 90 | } 91 | else 92 | { 93 | for (int i = 0; i < numStars.getIntValue(); ++i) 94 | g.drawImage(star, getX() + width * i, getY(), width, getHeight(),null); 95 | } 96 | } 97 | 98 | @Override 99 | protected Object clone() 100 | throws CloneNotSupportedException 101 | { 102 | throw new CloneNotSupportedException("Not yet..."); 103 | } 104 | 105 | @Override 106 | protected int getContentHeight() 107 | { 108 | return Button.DEFAULT_CONTENT_HEIGHT; 109 | } 110 | 111 | @Override 112 | protected int getContentWidth() 113 | { 114 | int stars = 5; 115 | if (numStars != null) 116 | stars = numStars.getIntValue(); 117 | return DEFAULT_START_WIDTH * stars; 118 | } 119 | } 120 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/ScrollView.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ScrollView.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | 16 | import org.droiddraw.gui.ImageResources; 17 | import org.droiddraw.gui.NineWayImage; 18 | import org.droiddraw.property.SelectProperty; 19 | import org.droiddraw.property.StringProperty; 20 | 21 | public class ScrollView extends FrameLayout 22 | { 23 | public static final String TAG_NAME = "ScrollView"; 24 | StringProperty scrollbar_size; 25 | StringProperty scrollbar_fade; 26 | SelectProperty scrollbars; 27 | NineWayImage field; 28 | 29 | public ScrollView() 30 | { 31 | this.setTagName(TAG_NAME); 32 | 33 | // 设置图标,方便ui设计时进行辨识 34 | this.setIconInTools( 35 | org.droiddraw.resource.IconFactory.getInstance() 36 | .getScrollView_small_Icon().getImage()); 37 | 38 | scrollbar_size = new StringProperty("Scrollbar Size", 39 | "android:scrollbarSize", ""); 40 | scrollbar_fade = new StringProperty("Scrollbar Fade Duration", 41 | "android:scrollbarFadeDuration", ""); 42 | scrollbars = new SelectProperty("Scrollbars", "android:scrollbars", 43 | new String[] { "none", "horizontal", "vertical" }, 0); 44 | props.add(scrollbar_size); 45 | props.add(scrollbar_fade); 46 | props.add(scrollbars); 47 | field = new NineWayImage(ImageResources.instance().getImage( 48 | "scrollfield.9"), 1, 1); 49 | } 50 | 51 | @Override 52 | public void paint(Graphics g) 53 | { 54 | // 绘制背景 55 | super.paintBackground(g); 56 | 57 | // 绘制该 widget名称 58 | super.paintText(g, this.getIconInTools()); 59 | 60 | field.paint(g, getX() + getWidth() - 10, getY(), 10, getHeight()); 61 | } 62 | 63 | } 64 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/Spinner.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * Spinner.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Font; 16 | import java.awt.Graphics; 17 | import java.awt.Graphics2D; 18 | 19 | import org.droiddraw.AndroidEditor; 20 | import org.droiddraw.property.BooleanProperty; 21 | import org.droiddraw.resource.WidgetDefaultNPIconFactory; 22 | import org.jb2011.ninepatch4j.NinePatch; 23 | 24 | import com.jb2011.drioduibuilder.util.Utils; 25 | 26 | public class Spinner extends AbstractWidget 27 | { 28 | public static final String TAG_NAME = "Spinner"; 29 | // NineWayImage img; 30 | // NineWayImage arrows; 31 | NinePatch image_base; 32 | // Image arrs; 33 | 34 | BooleanProperty onTop; 35 | Font f; 36 | 37 | public Spinner() 38 | { 39 | super(TAG_NAME); 40 | 41 | image_base = null; 42 | 43 | String theme = AndroidEditor.instance().getTheme(); 44 | if (theme == null || theme.equals("default")) 45 | { 46 | image_base = WidgetDefaultNPIconFactory.getInstance().getSpinner_normal(); 47 | // ImageResources.instance().getImage( 48 | // "def/spinner_normal.9"); 49 | // img = new NineWayImage(image_base, 10, 10); 50 | // arrs = ImageResources.instance().getImage( 51 | // "def/btn_dropdown_neither.9"); 52 | // arrows = null; 53 | } 54 | // else if (theme.equals("light")) 55 | // { 56 | // image_base = ImageResources.instance().getImage( 57 | // "light/spinnerbox_background_focus_yellow.9"); 58 | // if (image_base != null) 59 | // { 60 | // img = new NineWayImage(image_base, 10, 10, 28, 10); 61 | // arrs = ImageResources.instance().getImage( 62 | // "light/spinnerbox_arrow_middle.9"); 63 | // arrows = new NineWayImage(arrs, 1, 1, 22, 1); 64 | // } 65 | // } 66 | 67 | onTop = new BooleanProperty("Selector on Top", 68 | "android:drawSelectorOnTop", false); 69 | props.add(onTop); 70 | 71 | f = new Font("Arial", Font.PLAIN, 14); 72 | 73 | apply(); 74 | } 75 | 76 | @Override 77 | protected int getContentHeight() 78 | { 79 | return Button.DEFAULT_CONTENT_HEIGHT;//image_base.getHeight();//.getHeight(null); 80 | } 81 | 82 | @Override 83 | protected int getContentWidth() 84 | { 85 | return 90; 86 | } 87 | 88 | protected void paintNormalBorder(Graphics g) 89 | { 90 | // 本widget在未选中时不需要绘制border的哦 91 | } 92 | 93 | public void paint(Graphics g) 94 | { 95 | // 绘制背景 96 | super.paintBackground(g); 97 | 98 | if (image_base != null) 99 | { 100 | // img.paint(g, getX(), getY(), getWidth(), getHeight()); 101 | image_base.draw((Graphics2D)g, getX(), getY(), getWidth(), getHeight()); 102 | // if (arrows != null) 103 | // arrows.paint(g, getX(), getY(), getWidth(), getHeight()); 104 | // else 105 | // g.drawImage(arrs, getX() + getWidth() - 38, getY() 106 | // + getHeight() / 2 - arrs.getHeight(null) / 2, null); 107 | } 108 | g.setColor(Color.black); 109 | g.setFont(f); 110 | // 开启字体绘制反走样 111 | Utils.setTextAntiAliasing((Graphics2D)g, true); 112 | // if (arrows != null) 113 | g.drawString("Spinner", getX() + 10, 114 | getY()+Utils.getFontCenterY(f, getHeight())// Y轴居中绘制 115 | ); 116 | // 绘制完成后并闭字体绘制反走样 117 | Utils.setTextAntiAliasing((Graphics2D)g, false); 118 | } 119 | 120 | } 121 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/TabHost.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * TabHost.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import org.droiddraw.property.StringProperty; 15 | 16 | /** 17 | * This class will provide TabHost functionality by containing a TabWidget and 18 | * its corresponding FrameLayout. 19 | * 20 | * @author rey malahay Rey Malahay 21 | * 22 | */ 23 | public class TabHost extends FrameLayout 24 | { 25 | 26 | public static final String TAG_NAME = "TabHost"; 27 | /** 28 | * This is the id that is displayed in the final xml file. 29 | */ 30 | private static final String ANDROID_ID = "@android:id/tabhost"; 31 | 32 | /** 33 | * Default constructor 34 | */ 35 | public TabHost() 36 | { 37 | this.setTagName(TAG_NAME); 38 | ((StringProperty) this.getProperties().get( 39 | this.getProperties().indexOf( 40 | this.getPropertyByAttName("android:id")))) 41 | .setStringValue(ANDROID_ID); 42 | } 43 | } -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/TabWidget.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * TabWidget.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Graphics2D; 17 | 18 | import org.droiddraw.AndroidEditor; 19 | import org.droiddraw.property.StringProperty; 20 | import org.droiddraw.resource.WidgetDefaultNPIconFactory; 21 | import org.jb2011.ninepatch4j.NinePatch; 22 | 23 | import com.jb2011.drioduibuilder.util.Utils; 24 | 25 | /** 26 | * The TabWidget.java class will be used by the TabHost.java widget via a 27 | * LinearLayout widget. 28 | * 29 | * @author rey malahay Rey Malahay 30 | * 31 | */ 32 | public class TabWidget extends AbstractWidget 33 | { 34 | 35 | private NinePatch tab; 36 | // private NineWayImage img; 37 | // public static final String IMAGE_NAME = "def/tab_selected.9"; 38 | public static final String TAG_NAME = "TabWidget"; 39 | private static final String ANDROID_ID = "@android:id/tabs"; /* 40 | * This is the 41 | * id that is 42 | * displayed in 43 | * the final xml 44 | * file. 45 | */ 46 | 47 | /** 48 | * Default constructor 49 | */ 50 | public TabWidget() 51 | { 52 | super(TAG_NAME); 53 | ((StringProperty) this.getProperties().get( 54 | this.getProperties().indexOf(this.id))) 55 | .setStringValue(ANDROID_ID); 56 | String theme = AndroidEditor.instance().getTheme(); 57 | if (theme == null || theme.equals("default")) 58 | { 59 | tab = WidgetDefaultNPIconFactory.getInstance().getTab_normal(); 60 | // ImageResources.instance().getImage(IMAGE_NAME); 61 | // img = new NineWayImage(tab, 10, 10); 62 | } 63 | apply(); 64 | } 65 | 66 | public void apply() 67 | { 68 | super.apply(); 69 | this.baseline = 22; 70 | } 71 | 72 | protected void paintNormalBorder(Graphics g) 73 | { 74 | // 本widget在未选中时不需要绘制border的哦 75 | } 76 | 77 | public void paint(Graphics g) 78 | { 79 | // 绘制背景 80 | super.paintBackground(g); 81 | 82 | if (tab == null) 83 | { 84 | g.setColor(Color.white); 85 | g.fillRoundRect(getX(), getY(), getWidth(), getHeight(), 8, 8); 86 | 87 | g.setColor(Color.black); 88 | g.drawRoundRect(getX(), getY(), getWidth(), getHeight(), 8, 8); 89 | } 90 | else 91 | { 92 | tab.draw((Graphics2D)g, getX(), getY(), getWidth(), getHeight()); 93 | // img.paint(g, getX(), getY(), getWidth(), getHeight()); 94 | g.setColor(Color.black); 95 | final String showName = "Tab Widget"; 96 | g.drawString(showName, getX() + (getWidth() - Utils.getStrPixWidth(g.getFont(), showName))/2 97 | , getY() + Utils.getFontCenterY(g.getFont(), getHeight())); 98 | } 99 | } 100 | 101 | @Override 102 | protected int getContentHeight() 103 | { 104 | // if (tab != null) 105 | // return tab.getHeight(null); 106 | // else 107 | // return 10; 108 | return Button.DEFAULT_CONTENT_HEIGHT; 109 | } 110 | 111 | @Override 112 | protected int getContentWidth() 113 | { 114 | return (tab != null) ? 97 : 90; 115 | } 116 | } -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/TableLayout.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * TableLayout.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.util.StringTokenizer; 15 | import java.util.Vector; 16 | 17 | import org.droiddraw.property.StringProperty; 18 | 19 | public class TableLayout extends LinearLayout 20 | { 21 | public static final String TAG_NAME = "TableLayout"; 22 | Vector max_widths; 23 | Vector stretchColumns; 24 | boolean stretchAll; 25 | StringProperty stretch; 26 | 27 | public TableLayout() 28 | { 29 | this.setTagName(TAG_NAME); 30 | 31 | // 设置图标,方便ui设计时进行辨识 32 | this.setIconInTools( 33 | org.droiddraw.resource.IconFactory.getInstance() 34 | .getTableLayout_small_Icon().getImage()); 35 | 36 | this.max_widths = new Vector(); 37 | 38 | this.stretch = new StringProperty("Stretchable Column", 39 | "android:stretchColumns", ""); 40 | props.add(stretch); 41 | 42 | this.stretchColumns = new Vector(); 43 | this.stretchAll = false; 44 | apply(); 45 | } 46 | 47 | protected void calculateMaxWidths() 48 | { 49 | max_widths.clear(); 50 | for (Widget wt : widgets) 51 | { 52 | if (wt instanceof TableRow) 53 | { 54 | int ix = 0; 55 | TableRow row = (TableRow) wt; 56 | for (Widget w : row.getWidgets()) 57 | { 58 | if (w.getPropertyByAttName("android:layout_column") != null) 59 | { 60 | ix = Integer.parseInt(w.getPropertyByAttName( 61 | "android:layout_column").getValue().toString()); 62 | } 63 | w.apply(); 64 | int wd = w.getPadding(Widget.LEFT) + w.getWidth() 65 | + w.getPadding(Widget.RIGHT); 66 | if (ix >= max_widths.size()) 67 | { 68 | while (max_widths.size() < ix) 69 | { 70 | max_widths.add(0); 71 | } 72 | max_widths.add(wd); 73 | } 74 | else if (max_widths.get(ix) < wd) 75 | { 76 | max_widths.set(ix, wd); 77 | } 78 | ix++; 79 | } 80 | } 81 | } 82 | int total = 0; 83 | for (int i : max_widths) 84 | { 85 | total += i; 86 | } 87 | int extra = getWidth() - total; 88 | if (extra > 0 && (stretchColumns.size() > 0 || stretchAll)) 89 | { 90 | if (stretchAll) 91 | { 92 | int share = extra / max_widths.size(); 93 | for (int i = 0; i < max_widths.size(); ++i) 94 | { 95 | max_widths.set(i, max_widths.get(i) + share); 96 | } 97 | } 98 | else 99 | { 100 | int share = extra / stretchColumns.size(); 101 | for (int col : stretchColumns) 102 | { 103 | if (col < max_widths.size()) 104 | max_widths.set(col, max_widths.get(col) + share); 105 | } 106 | } 107 | } 108 | } 109 | 110 | @Override 111 | public void apply() 112 | { 113 | if (stretch != null) 114 | { 115 | String cols = stretch.getStringValue(); 116 | stretchColumns.clear(); 117 | if (cols != null) 118 | { 119 | if (cols.equals("*")) 120 | { 121 | stretchAll = true; 122 | } 123 | else 124 | { 125 | StringTokenizer toks = new StringTokenizer(cols, ","); 126 | while (toks.hasMoreTokens()) 127 | { 128 | stretchColumns.add(new Integer(toks.nextToken())); 129 | } 130 | } 131 | } 132 | } 133 | super.apply(); 134 | } 135 | 136 | @Override 137 | public void resizeForRendering() 138 | { 139 | calculateMaxWidths(); 140 | for (Widget w : widgets) 141 | { 142 | if (w instanceof TableRow) 143 | { 144 | ((TableRow) w).setWidths(max_widths); 145 | } 146 | else 147 | { 148 | w.setSizeInternal(getWidth() - w.getPadding(Widget.LEFT) 149 | - w.getPadding(Widget.RIGHT), w.getHeight()); 150 | if (w instanceof Layout) 151 | { 152 | ((Layout) w).resizeForRendering(); 153 | } 154 | } 155 | } 156 | } 157 | } 158 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/Ticker.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * Ticker.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | public class Ticker extends FrameLayout 15 | { 16 | public static final String TAG_NAME = "Ticker"; 17 | 18 | public Ticker() 19 | { 20 | this.setTagName(TAG_NAME); 21 | apply(); 22 | } 23 | 24 | @Override 25 | public void addWidget(Widget w) 26 | { 27 | if (widgets.size() == 0) 28 | super.addWidget(w); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/ToggleButton.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * ToggleButton.java at 2015-2-6 16:12:03, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Color; 15 | import java.awt.Graphics; 16 | import java.awt.Graphics2D; 17 | import java.awt.Image; 18 | 19 | import org.droiddraw.AndroidEditor; 20 | import org.droiddraw.gui.ImageResources; 21 | import org.droiddraw.gui.NineWayImage; 22 | import org.droiddraw.property.StringProperty; 23 | 24 | public class ToggleButton extends Button 25 | { 26 | public static final String TAG_NAME = "ToggleButton"; 27 | 28 | private StringProperty textOn; 29 | private StringProperty textOff; 30 | 31 | NineWayImage on; // TODO 要换成NP图方式! 32 | NineWayImage off;// TODO 要换成NP图方式! 33 | 34 | public ToggleButton(String txtOn, String txtOff) 35 | { 36 | super(""); 37 | this.setTagName(TAG_NAME); 38 | 39 | String theme = AndroidEditor.instance().getTheme(); 40 | if (theme == null || theme.equals("default")) 41 | { 42 | Image img_base = ImageResources.instance().getImage( 43 | "def/btn_toggle_on.9"); 44 | if (img_base != null) 45 | { 46 | this.on = new NineWayImage(img_base, 10, 5); 47 | } 48 | img_base = ImageResources.instance().getImage( 49 | "def/btn_toggle_off.9"); 50 | if (img_base != null) 51 | { 52 | this.off = new NineWayImage(img_base, 5, 5); 53 | } 54 | } 55 | 56 | // Empty defaults, so always print. 57 | this.textOn = new StringProperty("Text when on", "android:textOn", ""); 58 | this.textOn.setStringValue(txtOn); 59 | this.textOff = new StringProperty("Text when off", "android:textOff", 60 | ""); 61 | this.textOff.setStringValue(txtOff); 62 | this.addProperty(textOn); 63 | this.addProperty(textOff); 64 | } 65 | 66 | @Override 67 | public void paint(Graphics g) 68 | { 69 | // 绘制背景 70 | super.paintBackground(g); 71 | 72 | // 处于可见状态才填充内容 73 | if(this.isVisible()) 74 | { 75 | if (img_base == null) 76 | { 77 | g.setColor(Color.white); 78 | g.fillRoundRect(getX(), getY(), getWidth(), getHeight(), 8, 8); 79 | 80 | g.setColor(Color.black); 81 | g.drawRoundRect(getX(), getY(), getWidth(), getHeight(), 8, 8); 82 | } 83 | else 84 | { 85 | // img_base.paint(g, getX(), getY(), getWidth(), getHeight()); 86 | img_base.draw((Graphics2D)g, getX(), getY(), getWidth(), getHeight()); 87 | if (on != null) 88 | on.paint(g, getX() + 15, getY() + getHeight() - 15, getWidth() - 30, 5); 89 | g.setColor(Color.black); 90 | } 91 | } 92 | 93 | g.setFont(f); 94 | g.setColor(textColor.getColorValue()); 95 | drawText(g, textOn.getStringValue(), 0, getHeight() / 2 + fontSize / 2 - 8, CENTER); 96 | } 97 | 98 | @Override 99 | protected int getContentWidth() 100 | { 101 | int l1 = (textOn == null ? 0 : stringLength(textOn.getStringValue()) 102 | + pad_x); 103 | int l2 = (textOff == null ? 0 : stringLength(textOff.getStringValue()) 104 | + pad_x); 105 | return Math.max(Math.max(l1, l2), 40); 106 | } 107 | } 108 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/View.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * View.java at 2015-2-6 16:11:59, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | 16 | public class View extends AbstractWidget 17 | { 18 | 19 | public static final String TAG_NAME = "View"; 20 | 21 | public View() 22 | { 23 | super(TAG_NAME); 24 | } 25 | 26 | @Override 27 | protected int getContentHeight() 28 | { 29 | return 0; 30 | } 31 | 32 | @Override 33 | protected int getContentWidth() 34 | { 35 | return 0; 36 | } 37 | 38 | public void paint(Graphics g) 39 | { 40 | // 绘制背景 41 | super.paintBackground(g); 42 | 43 | g.setColor(background.getColorValue()); 44 | g.fillRect(getX(), getY(), getWidth(), getHeight()); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/Widget.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * Widget.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.Graphics; 15 | import java.beans.PropertyChangeListener; 16 | import java.util.Vector; 17 | 18 | import org.droiddraw.property.Property; 19 | 20 | public interface Widget extends Cloneable 21 | { 22 | public static final int TOP = 0; 23 | public static final int LEFT = 1; 24 | public static final int BOTTOM = 2; 25 | public static final int RIGHT = 3; 26 | 27 | public boolean clickedOn(int x, int y); 28 | 29 | public int getX(); 30 | 31 | public int getY(); 32 | 33 | public int getWidth(); 34 | 35 | public int getHeight(); 36 | 37 | public void setPosition(int x, int y); 38 | 39 | public void setSize(int width, int height); 40 | 41 | public void setWidth(int width); 42 | 43 | public void setHeight(int height); 44 | 45 | public void setSizeInternal(int w, int h); 46 | 47 | public void move(int dx, int dy); 48 | 49 | public void paint(Graphics g); 50 | 51 | public void apply(); 52 | 53 | public Vector getProperties(); 54 | 55 | public void setPropertyByAttName(String attName, String value); 56 | 57 | public Property getPropertyByAttName(String attName); 58 | 59 | public boolean propertyHasValueByAttName(String attName, Object value); 60 | 61 | public void addProperty(Property p); 62 | 63 | public void removeProperty(Property p); 64 | 65 | public void setPropertyChangeListener(PropertyChangeListener l); 66 | 67 | public String getTagName(); 68 | 69 | public String getId(); 70 | 71 | public Layout getParent(); 72 | 73 | public void setParent(Layout w); 74 | 75 | public int getBaseline(); 76 | 77 | public int getPadding(int which); 78 | 79 | public void setPadding(int pad); 80 | 81 | public void setPadding(int pad, int which); 82 | 83 | /** 84 | * 该Widget是否可见. 85 | * 86 | * @return true对应于Android中View的View.visible,false则对应于View.invisible或View.gone 87 | */ 88 | public boolean isVisible(); 89 | 90 | /** 91 | * 该Widget的getVisible()方法是否返回的是View.gone属性. 92 | * 93 | * @return true表示该Widget是View.gone,否则可能是View.visible或View.invisible 94 | */ 95 | public boolean isGone(); 96 | 97 | public int getMargin(int which); 98 | 99 | public Widget copy(); 100 | 101 | /** 102 | * 仅用于ui设计器中,设置该widget是否是被选中状态(或者说是 103 | * 获得焦点). 104 | * 105 | * @param selected true表示该widget被选中,否则没有选中 106 | */ 107 | public void setSelect(boolean selected); 108 | /** 109 | * 仅用于ui设计器中,指明该widget是否是被选中状态(或者说是 110 | * 获得焦点). 111 | * 112 | * @return true表示该widget被选中,否则没有选中 113 | */ 114 | public boolean isSelected(); 115 | 116 | /** 117 | * 设置该widget对象是否是位于设计器的编辑面板中(而不是位于 118 | * 工具面板上). 119 | * 120 | *

位于工具面板上意味着它仅是作为工具使用,否则将即是位于真正的 121 | * 设计器预览视图里. 122 | * 123 | *

此标识的作用在于使得该 widget的paint方法可以 124 | * 区分不同用途时它们的不同绘制实现,提高体验. 125 | * 126 | * @param inDesignViewer true意味着该widget正位于设计器的编辑面板中 127 | * (正常情况下都是处于这种情形之下),否则意味着位于工具面板中 128 | */ 129 | public Widget setInDesignViewer(boolean inDesignViewer); 130 | 131 | /** 132 | * 是否该widget对象是否是位于设计器的编辑面板中(而不是位于 133 | * 工具面板上). 134 | * 135 | *

此标识的作用在于使得该 widget的paint方法可以 136 | * 区分不同用途时它们的不同绘制实现,提高体验. 137 | * 138 | * @return true意味着该widget正位于设计器的编辑面板中 139 | * (正常情况下都是处于这种情形之下),否则意味着位于工具面板中 140 | */ 141 | public boolean isInDesignViewer(); 142 | 143 | } -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/WidgetTransferable.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * WidgetTransferable.java at 2015-2-6 16:12:00, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.awt.datatransfer.DataFlavor; 15 | import java.awt.datatransfer.Transferable; 16 | import java.awt.datatransfer.UnsupportedFlavorException; 17 | import java.io.IOException; 18 | import java.io.PrintWriter; 19 | import java.io.StringWriter; 20 | 21 | import org.droiddraw.AndroidEditor; 22 | 23 | public class WidgetTransferable implements Transferable 24 | { 25 | private Widget w; 26 | 27 | public WidgetTransferable(Widget w) 28 | { 29 | this.w = w; 30 | } 31 | 32 | public Object getTransferData(DataFlavor flavor) 33 | throws UnsupportedFlavorException, IOException 34 | { 35 | if (flavor.equals(DataFlavor.stringFlavor) 36 | || flavor.getRepresentationClass().equals(Widget.class)) 37 | { 38 | StringWriter sw = new StringWriter(); 39 | PrintWriter pw = new PrintWriter(sw); 40 | AndroidEditor.instance().generateWidget(w, pw); 41 | pw.flush(); 42 | return sw.toString(); 43 | } 44 | else 45 | throw new UnsupportedFlavorException(flavor); 46 | } 47 | 48 | public DataFlavor[] getTransferDataFlavors() 49 | { 50 | DataFlavor[] result = new DataFlavor[] { DataFlavor.stringFlavor, 51 | new DataFlavor(Widget.class, "DroidDraw Widget") }; 52 | return result; 53 | } 54 | 55 | public boolean isDataFlavorSupported(DataFlavor flavor) 56 | { 57 | return flavor.equals(DataFlavor.stringFlavor) 58 | || flavor.getRepresentationClass().equals(Widget.class); 59 | } 60 | 61 | } 62 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/org/droiddraw/widget/WidgetTreeNode.java: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2015 Jack Jiang(cngeeker.com) The DroidUIBuilder Project. 3 | * All rights reserved. 4 | * Project URL:https://github.com/JackJiang2011/DroidUIBuilder 5 | * Version 1.0 6 | * 7 | * Jack Jiang PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. 8 | * 9 | * WidgetTreeNode.java at 2015-2-6 16:12:02, original version by Jack Jiang. 10 | * You can contact author with jb2011@163.com. 11 | */ 12 | package org.droiddraw.widget; 13 | 14 | import java.util.Enumeration; 15 | 16 | import javax.swing.tree.TreeNode; 17 | 18 | public class WidgetTreeNode implements TreeNode 19 | { 20 | private Widget widget; 21 | 22 | public WidgetTreeNode(Widget w) 23 | { 24 | this.widget = w; 25 | } 26 | 27 | public Widget getWidget() 28 | { 29 | return widget; 30 | } 31 | 32 | public Enumeration children() 33 | { 34 | return null; 35 | } 36 | 37 | public boolean getAllowsChildren() 38 | { 39 | return false; 40 | } 41 | 42 | public TreeNode getChildAt(int childIndex) 43 | { 44 | return null; 45 | } 46 | 47 | public int getChildCount() 48 | { 49 | return 0; 50 | } 51 | 52 | public int getIndex(TreeNode node) 53 | { 54 | return -1; 55 | } 56 | 57 | public TreeNode getParent() 58 | { 59 | return new LayoutTreeNode(widget.getParent()); 60 | } 61 | 62 | public boolean isLeaf() 63 | { 64 | return false; 65 | } 66 | 67 | public boolean equals(Object o) 68 | { 69 | if (o instanceof WidgetTreeNode) 70 | { 71 | return ((WidgetTreeNode) o).widget.equals(widget); 72 | } 73 | return false; 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/background_01p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/background_01p.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/date_picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/date_picker.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/date_picker_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/date_picker_small.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/btn_check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/btn_check_off.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/btn_check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/btn_check_on.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/btn_radio_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/btn_radio_off.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/btn_radio_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/btn_radio_on.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/btn_toggle_off.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/btn_toggle_off.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/btn_toggle_on.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/btn_toggle_on.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/progress_wheel_medium.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/progress_wheel_medium.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/radio_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/radio_group.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_check_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_check_off.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_check_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_check_on.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_default_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_default_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_default_small_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_default_small_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_dropdown_neither.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_dropdown_neither.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_dropdown_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_dropdown_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_radio_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_radio_off.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/btn_radio_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/btn_radio_on.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/progress_wheel_large.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/progress_wheel_large.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/radio_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/radio_group.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/radio_group_0.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/radio_group_0.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/spinner_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/spinner_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/tab_selected.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/tab_selected.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/textfield.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/textfield.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/def/备选/textfield_default.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/def/备选/textfield_default.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/droiddraw_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/droiddraw_small.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/editor_content_bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/editor_content_bg.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/emu1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/emu1.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/emu2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/emu2.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/emu3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/emu3.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/emu4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/emu4.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/emu5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/emu5.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/emu6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/emu6.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/gallery.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/gallery.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/gridview_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/gridview_small.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/button_background_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/button_background_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/checkbox_off_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/checkbox_off_background.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/checkbox_on_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/checkbox_on_background.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/clock_dial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/clock_dial.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/clock_hand_hour.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/clock_hand_hour.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/clock_hand_minute.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/clock_hand_minute.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/editbox_background_normal.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/editbox_background_normal.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/progress_circular_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/progress_circular_background.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/progress_circular_indeterminate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/progress_circular_indeterminate.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/progress_particle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/progress_particle.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/radiobutton_off_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/radiobutton_off_background.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/radiobutton_on_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/radiobutton_on_background.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/spinnerbox_arrow_middle.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/spinnerbox_arrow_middle.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/light/spinnerbox_background_focus_yellow.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/light/spinnerbox_background_focus_yellow.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/listview_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/listview_small.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/mapview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/mapview.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/mdpi/textfield_default.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/mdpi/textfield_default.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/paint.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/paint.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/paypal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/paypal.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/rate_star_big_half.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/rate_star_big_half.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/rate_star_big_off.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/rate_star_big_off.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/rate_star_big_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/rate_star_big_on.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/rate_star_small_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/rate_star_small_on.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/scrollbar.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/scrollbar.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/scrollfield.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/scrollfield.9.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/stat_sys_battery_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/stat_sys_battery_100.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/stat_sys_battery_charge_100.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/stat_sys_battery_charge_100.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/stat_sys_data_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/stat_sys_data_connected.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/stat_sys_signal_3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/stat_sys_signal_3.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/stat_sys_time_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/stat_sys_time_img.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/stat_sys_title_text_img.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/stat_sys_title_text_img.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/statusbar_background_l.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/statusbar_background_l.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/statusbar_background_p.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/statusbar_background_p.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/time_picker.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/time_picker.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/time_picker_small.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/time_picker_small.png -------------------------------------------------------------------------------- /src_all/DriodUIBuilder/src/ui/title_bar.9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/JackJiang2011/DroidUIBuilder/32dcc30cbea28744c451999f74b391ad1c33193b/src_all/DriodUIBuilder/src/ui/title_bar.9.png --------------------------------------------------------------------------------