当前位置: 首页 > news >正文

iis7.5发布网站教程事业单位网站建设注销情况说明

iis7.5发布网站教程,事业单位网站建设注销情况说明,绵阳学校网站建设,整站下载器 安卓版如果觉得写mvp有点枯燥无味#xff0c;我们可以做点 cool 的事情#xff1a;做个 as 插件help.pngtodo-mvp: 基础的MVP架构。todo-mvp-loaders:基于MVP架构的实现#xff0c;在获取数据的部分采用了loaders架构。todo-mvp-databinding: 基于MVP架构的实现#xff0c;采用了…如果觉得写mvp有点枯燥无味我们可以做点 cool 的事情做个 as 插件help.pngtodo-mvp: 基础的MVP架构。todo-mvp-loaders:基于MVP架构的实现在获取数据的部分采用了loaders架构。todo-mvp-databinding: 基于MVP架构的实现采用了数据绑定组件。todo-mvp-clean: 基于MVP架构的clean架构的实现。todo-mvp-dagger2: 基于MVP架构采用了依赖注入dagger2。dev-todo-mvp-contentproviders: 基于mvp-loaders架构使用了ContenPproviders。dev-todo-mvp-rxjava: 基于MVP架构对于程序的并发处理和数据层(MVP中的Model)的抽象。因为对mvp的理解不同会有很多种方式表达架构所以插件要极简易读可扩展性强所以可以选择/*** 通过模板生成类* param var1 文件生成路径* param var2 文件名* param var3 模板名* param var4 是否生产类* param var5 模板参数*/public abstract PsiClass createClass(NotNull PsiDirectory var1, NotNull String var2, NotNull String var3, boolean var4, NotNull Map var5) throws IncorrectOperationException;也就是只要定制不同的模板就可以实现扩展性直接贴下步骤1 idea File - new - Project - IntelliJ Platform Plugindir.PNGplugin.xml 插件配置信息com.your.company.unique.plugin.idPlugin display name here1.0YourCompanyEnter short description for your plugin here.most HTML tags may be used]]Add change notes here.most HTML tags may be used]]descriptionGenerate MVP icon/icons/app_icon.pngaction:public class MvpGenerator extends AnAction implements MvpHandler.OnGenerateListener {private AnActionEvent actionEvent;private MvpHandler mvpHandler;private Map map new HashMap();Overridepublic void actionPerformed(AnActionEvent anActionEvent) {this.actionEvent anActionEvent;mvpHandler new MvpHandler();mvpHandler.setTitle(输入名称-生成MVP相关类);mvpHandler.setOnGenerateListener(this);mvpHandler.pack();//设置对话框跟随当前windows窗口mvpHandler.setLocationRelativeTo(WindowManager.getInstance().getFrame(anActionEvent.getProject()));mvpHandler.setVisible(true);}Overridepublic void onGenerate(String text) {JavaDirectoryService directoryService JavaDirectoryService.getInstance();//当前工程Project project actionEvent.getProject();map.put(NAME, text);map.put(PACKAGE_NAME, Util.getPackageName(project));//鼠标右键所选择的路径IdeView ideView actionEvent.getRequiredData(LangDataKeys.IDE_VIEW);PsiDirectory directory ideView.getOrChooseDirectory();assert directory ! null;if (directory.getName().contains(contract) directory.findFile(text Contract.java) null) {directoryService.createClass(directory, text Contract, GenerateContractFile, true, map);}if (directory.getName().contains(model) directory.findFile(text Model.java) null) {directoryService.createClass(directory, text Model, GenerateModelFile, true, map);}if (directory.getName().contains(presenter) directory.findFile(text Presenter.java) null) {directoryService.createClass(directory, text Presenter, GeneratePresenterFile, true, map);}}Overridepublic void onCancel() {mvpHandler.setVisible(false);}}dialog: (action下右键new dialog)public class MvpHandler extends JDialog {private JPanel contentPane;private JButton buttonOK;private JButton buttonCancel;private JTextArea textArea1;private OnGenerateListener listener;public void setOnGenerateListener(OnGenerateListener listener) {this.listener listener;}public MvpHandler() {setContentPane(contentPane);setModal(true);getRootPane().setDefaultButton(buttonOK);buttonOK.addActionListener(e - listener.onGenerate(textArea1.getText().trim()));buttonCancel.addActionListener(e - listener.onCancel());// call onCancel() when cross is clickedsetDefaultCloseOperation(DO_NOTHING_ON_CLOSE);addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {listener.onCancel();}});// call onCancel() on ESCAPEcontentPane.registerKeyboardAction(e - listener.onCancel(), KeyStroke.getKeyStroke(KeyEvent.VK_ESCAPE, 0), JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT);}public interface OnGenerateListener{void onGenerate(String text);void onCancel();}}MvpHandler.form 拖动控件dialog.PNGUtilpublic class Util {/*** AndroidManifest.xml 获取 app 包名* return*/public static String getPackageName(Project project) {String package_name ;DocumentBuilderFactory dbf DocumentBuilderFactory.newInstance();try {DocumentBuilder db dbf.newDocumentBuilder();Document doc db.parse(project.getBasePath() /app/src/main/AndroidManifest.xml);NodeList nodeList doc.getElementsByTagName(manifest);for (int i 0; i nodeList.getLength(); i) {Node node nodeList.item(i);Element element (Element) node;package_name element.getAttribute(package);}} catch (Exception e) {e.printStackTrace();}return package_name;}}2 定制模板按需求定制new - file - xxx.java.ftGenerateContractFile.java.ft#if (${PACKAGE_NAME} ${PACKAGE_NAME} ! )package ${PACKAGE_NAME};#endimport base.IBaseModel;import base.IBaseView;import base.IPresenter;public interface ${NAME}Contract{interface I${NAME}View extends IBaseView{}interface I${NAME}Model extends IBaseModel{}interface I${NAME}Presenter extends IPresenter{}}GenerateModelFile.java.ft#if (${PACKAGE_NAME} ${PACKAGE_NAME} ! )package ${PACKAGE_NAME};#endimport ${PACKAGE_NAME}.contract.${NAME}Contract;import base.IBaseModel;public class ${NAME}Model implements ${NAME}Contract.I${NAME}Model{public static IBaseModel newInstance(){return new ${NAME}Model();}}GeneratePresenterFile.java.ft#if (${PACKAGE_NAME} ${PACKAGE_NAME} ! )package ${PACKAGE_NAME};#endimport ${PACKAGE_NAME}.contract.${NAME}Contract;import ${PACKAGE_NAME}.model.${NAME}Model;import base.BasePresenter;public class ${NAME}Presenter extends BasePresenter implements ${NAME}Contract.I${NAME}Presenter{Overridepublic ${NAME}Contract.I${NAME}Model bindModel(){return (${NAME}Contract.I${NAME}Model)${NAME}Model.newInstance();}}MVP:BasePresenter:public abstract class BasePresenter implements IPresenter {protected T mView;protected M mModel;protected CompositeDisposable mDisposable;public BasePresenter() {this.mModel bindModel();mDisposable new CompositeDisposable();}public boolean isViewAttached() {return mView ! null;}public void checkViewAttached() {if (!isViewAttached()) throw new RuntimeException(未注册View);}Overridepublic void onAttach(T t) {mView t;if (mModel null) {throw new NullPointerException(model没有绑定 不能使用);}}/*** return Model*/public abstract M bindModel();Overridepublic void onDetach() {if (!mDisposable.isDisposed())mDisposable.dispose();mView null;}}IBaseModelpackage base;/*** Created by haoran on 2018/4/4.*/public interface IBaseModel {}IBaseView package base;/*** Created by haoran on 2017/10/30.*/public interface IBaseView {void showLoading();void hideLoading();void onError(String message);}IPresenterpackage base;/*** Created by haoran on 2017/10/30.*/public interface IPresenter {void onAttach(T t);void onDetach();}实现类(引导页为例)... import 忽略GuideContractpublic interface GuideContract {interface IGuideView extends IBaseView{void showGuideImages(List pictureListBeans);void showGuideDefaultImage();}interface IGuideModel extends IBaseModel {Observable getGuideImages();}interface IGuidePresenter extends IPresenter {void getGuideImages();}}GuideModelpublic class GuideModel implements GuideContract.IGuideModel {public static IBaseModel newInstance() {return new GuideModel();}public Observable getGuideImages() {return ApiHelper.get().getGuideImages(new JSONObject());}}GuidePresenterpublic class GuidePresenter extends BasePresenter implements GuideContract.IGuidePresenter {Overridepublic void getGuideImages() {checkViewAttached();mDisposable.add(mModel.getGuideImages().subscribe(pictureList - {if (pictureList null || pictureList.size() 0) {mView.showGuideDefaultImage();} else {mView.showGuideImages(pictureList);}}, throwable - mView.showGuideDefaultImage()));}Overridepublic GuideContract.IGuideModel bindModel() {return (GuideContract.IGuideModel) GuideModel.newInstance();}}根据自己实际的mvp实现类定制模板3 打包插件as引入插件使用插件(插件开发调试忽略)打包idea里 build - Prapare Pulgine Module xxx for Developer项目目录下的jar包打开as -- setting pulgine import from disk : jar 包目录重启as选中目录(含contract model presenter) alt i(快捷键可在plugine.xml配置)或 右键 - new - 点击插件图标输入 名称(XXX)--- 生成 java 类generate1.PNG点击okgenerate2.PNG感谢)
http://www.pierceye.com/news/464473/

相关文章:

  • 网站建设渠道做网站前端和平面配合
  • 北京交友最好的网站建设wordpress 移动支付宝
  • 2015百度推广网站遭到攻击非遗网页设计作品欣赏
  • 网站空间需要多大网站推荐几个免费的
  • 做一个网站花多少钱建行系统
  • 滁州市住房城乡建设部网站wordpress title背景
  • 餐饮手机微网站怎么做wordpress 多语言建站
  • 企业信息系统案例东昌府聊城网站优化
  • 做美食直播哪个网站好php网站开发数据列表排重
  • 网站建设 职责网站分站加盟
  • 单页网站产品手机网站免费生成
  • 无锡电子商务网站建设公司德国网站的后缀名
  • 服务器做视频网站赣州企业做网站
  • 如何看出网站用dede做的网站百度快照
  • 做网站很难吗五种新型营销方式
  • 个人网站搭建模拟感想江西企业网站建设哪家好
  • 长春企业网站建设网站制作公司相关工作
  • 免费课程网站有哪些兼职网站项目建设报告
  • 建立网站免费dedecms网站地图制作
  • 网页设计公司网站制作做网站最主要是那个一类商标
  • 卫生局网站建设方案网站架构设计英文翻译
  • 学做衣服网站有哪些智能开发平台软件
  • wordpress 下载站插件wordpress清楚所有评论
  • 公司网站建设工作计划网站设置受信任
  • 网站如何做实名验证码深圳企业网站推广
  • 傻瓜式大型网站开发工具餐饮业手机php网站
  • 网站建设小细节图片东阳网站建设yw126
  • 为什么找不到做网站的软件怎么做音乐mp3下载网站
  • 做一个网站需要什么网络营销方式分析论文
  • 可以做3d电影网站企业网站优化应该怎么做