V5X-代码辅助编辑器
- 格式:doc
- 大小:317.50 KB
- 文档页数:4
iH5-》iVX的功能升级iH5到目前为止已经投放运营了近5年,在可视化制作H5的领域也获得广泛的认可。
但iH5依然称不上是一个通用的软件开发产品,其主要的应用场景,还是局限在展示/营销类的H5应用的制作。
因此,秉承iH5可视化零代码应用开发宗旨,在2018年前开始了iVX 平台的开发,目标是让大家能使用和iH5一致的开发方式,制作通用的软件应用,包括企业管理应用,电商APP,小程序应用等等。
换句话来说,iVX是一个零代码通用软件应用的开发平台。
从H5到通用应用,iVX做了哪些升级由于应用场景的扩张,iVX也必须在iH5的基础上提供更强大的能力:如上图所示,iVX主要在5个方面对iH5的功能进行了升级,包括应用的前、后台功能,编辑器与案例管理功能,以及应用打包与部署运维方面,都全面支持专业级的应用开发,将iH5零代码编程的能力拓展到了更广阔的应用领域。
后台功能iH5平台的后台功能,主要包括数据库以及一些基础的微信接口组件(红包、支付点等等),旨在为展示类的H5应用提供简单的后台数据存储功能,用来做报名信息收集、投票、抽奖等活动。
我们可以把iH5的数据库功能,看成是iH5平台为大家提供的一个数据库接口,我们可以在前端应用中调用这个接口,来进行简单的数据增、删、改、查的操作。
在iVX中,由于我们需要支持更复杂的应用场景,比如OA系统,电商平台,会议系统,流程管理系统等等,简单的数据库接口已经不能满足需求了,主要的问题在于:.复杂的应用系统,需要将部分逻辑放在后台服务器中处理,比如数据加密,第三方服务端接口,多数据库请求,而不能全部由前端处理,否则会产生各种安全性以及并发性的问题;.复杂的应用系统,需要用到更高级的数据库功能,比如联表查询,事务封装,简单的数据库接口无法满足需求;为此,在iVX中新增了“服务层”,我们除了可以定义客户端的逻辑,还可以定义服务层的逻辑。
其中,客户端的逻辑,就是前端交互与展示逻辑,和iH5中的主体逻辑一致,而服务层的逻辑,则是在后台服务器上运行的逻辑,是iVX平台新提供的能力。
使用Python编写GUI图像编辑器的代码示例在Python中,有几个流行的图形用户界面(GUI)库可用于创建图像编辑器。
本文将使用PyQt5这个强大的GUI库来编写一个简单的图像编辑器,其中包括基本的图像显示、缩放、旋转、裁剪、调整亮度和对比度等功能。
首先,确保已经安装了PyQt5。
可以使用以下命令来安装:```pip install PyQt5```接下来,导入所需的模块:```pythonimport sysfrom PyQt5.QtWidgets import QApplication, QMainWindow, QFileDialog, QLabel, QVBoxLayout, QHBoxLayout, QWidget, QAction, QSlider, QGridLayout, QPushButtonfrom PyQt5.QtGui import QImage, QPixmap, QPainter, QColor, QTransformfrom PyQt5.QtCore import Qt```接下来,我们将创建一个名为`ImageEditor`的主窗口类,扩展自PyQt5的`QMainWindow`类。
该类将包含图像编辑器的所有功能。
```pythonclass ImageEditor(QMainWindow):def __init__(self):super().__init__()self.setWindowTitle("图像编辑器")self.setGeometry(200, 200, 800, 600)self.image = Noneself.modified_image = Noneself.create_actions()self.create_menus()self.create_widgets()def create_actions(self):self.open_image_action = QAction("打开图像", self)self.open_image_action.triggered.connect(self.open_image) self.save_image_action = QAction("保存图像", self)self.save_image_action.triggered.connect(self.save_image) def create_menus(self):self.file_menu = self.menuBar().addMenu("文件")self.file_menu.addAction(self.open_image_action)self.file_menu.addAction(self.save_image_action)def create_widgets(self):self.image_label = QLabel()self.image_label.setAlignment(Qt.AlignCenter)self.scroll_area = QScrollArea()self.scroll_area.setWidgetResizable(True)self.scroll_area.setWidget(self.image_label)self.slider_brightness = QSlider(Qt.Horizontal)self.slider_brightness.setMinimum(-100)self.slider_brightness.setMaximum(100)self.slider_brightness.valueChanged.connect(self.adjust_b rightness)self.slider_contrast = QSlider(Qt.Horizontal)self.slider_contrast.setMinimum(-100)self.slider_contrast.setMaximum(100)self.slider_contrast.valueChanged.connect(self.adjust_con trast)self.button_rotate_left = QPushButton("向左旋转")self.button_rotate_left.clicked.connect(self.rotate_left) self.button_rotate_right = QPushButton("向右旋转")self.button_rotate_right.clicked.connect(self.rotate_righ t)self.button_crop = QPushButton("裁剪")self.button_crop.clicked.connect(self.crop)yout_sliders = QHBoxLayout()yout_sliders.addWidget(self.slider_brightness)yout_sliders.addWidget(self.slider_contrast)yout_buttons = QHBoxLayout()yout_buttons.addWidget(self.button_rotate_left)yout_buttons.addWidget(self.button_rotate_right)yout_buttons.addWidget(self.button_crop)yout_main = QVBoxLayout()yout_main.addWidget(self.scroll_area)yout_main.addLayout(yout_sliders)yout_main.addLayout(yout_buttons)self.widget = QWidget()self.widget.setLayout(yout_main)self.setCentralWidget(self.widget)```在上述代码中,我们创建了一个`ImageEditor`类,并在构造函数中初始化了窗口的一些参数,如标题、大小等。
硬件、软件配置3dsmax所要求的系统配置高。
一般家用电脑配上Windows2000或WindowsXP操作系统就可以运行。
当然,之后的Windows操作系统就更好。
1、CPU:至少500MHz。
CPU的主频越高越好,是影响软件运行速度的最重要因素。
2、内存:256MB以上。
最好配备512MB以上。
如果内存不足将使处理大场景变得非常困难。
3、显示卡:要求显卡至少支持分辨率1024*768,推荐使用24位色,3D加速显示卡。
4、显示器:至少支持1280*1024*75HZ(刷新率)、17英寸以上的显示器。
5、光驱:建议配一个24速以上的CD-ROM光驱,可以获取丰富的造型和多彩多姿的图形图像文件。
有条件的话可以添置一些制作三维动画的设备,比如扫描仪、手写板、数码相机、外接阵列硬盘、实时采集录制卡等。
利用这些设备,三维动画制作过程加会更加方便。
编辑本段使用领域1、游戏动画主要客户有EA、Epic、SEGA等,大量使用于游戏的场景、角色建模和游戏动画制作。
3ds max参和了大量的游戏制作,其他的不用多说,大名鼎鼎的《古墓丽影》系列就是3ds max 的杰作。
即使是个人爱好者利用3ds max,也能够轻松地制作一些动画角色。
对于3ds max 的使用范围,只要充分发挥想象力,就可以将其运用在许多设计领域。
2、建筑动画北京申奥宣传片等。
绘制建筑效果图和室内装修是3ds max系列产品最早的使用之一。
先前的版本由于技术不完善,制作完成后,经常需要用位图软件加以处理,而现在的3ds max直接渲染输出的效果就能够达到实际使用水平,更由于动画技术和后期处理技术的提高,这方面最新的使用是制作大型社区的电视动画广告。
3、室内设计在3DMAX等软件中,可以制作出3D模型,可用于室内设计、例如室内设计效果图模型。
4、影视动画《阿凡达》《诸神之战》《2012》等热门电影都引进了先进的3D技术。
前面已经说过3ds max 在这方面的使用。
7945hx笔记本编译代码为了在7945HX笔记本上编译代码,您需要首先确定您的操作系统和代码编辑器。
这里我以Windows操作系统和Visual Studio Code为例。
以下是编译代码的步骤:1. 安装Visual Studio Code:访问Visual Studio Code官方下载并安装适用于Windows的版本。
2. 安装C/C++扩展:打开Visual Studio Code,点击左侧侧边栏的扩展图标(Extensions),搜索“C/C++”,找到名为“C/C++”的扩展,点击安装。
3. 创建新文件:点击左上角文件图标,选择“新建文件”(或按Ctrl+N),创建一个新的C或C++文件。
4. 编写代码:在新生成的文件中编写您的代码。
例如,以下是一个简单的C程序:```c#include <stdio.h>int main() {printf("Hello, World!");return 0;}```5. 保存文件:点击文件菜单,选择“另存为”(或按Ctrl+S),将文件保存为*.c (例如,example.c)。
6. 编译代码:在Visual Studio Code中,点击左侧状态栏的“终端”(Terminal)图标,打开终端。
在终端中,输入以下命令以编译代码:```bashgcc example.c -o example```7. 运行编译后的程序:等待编译完成后,在终端中输入以下命令运行编译后的程序:```bash./example```以上步骤适用于在7945HX笔记本上使用Visual Studio Code编译C/C++代码。
请注意,这里的命令和步骤可能因操作系统、软件版本和个人设置而略有不同。
如果您遇到问题,请查阅相关文档或寻求技术支持。
激活命令台第一步:打开“英雄无敌5安装目录\profiles”,用记事本打开文件“autoexec_a2.cfg ”最后一行加‘setvar dev_console_password = schwinge-des-todes’也就成了// Startupexec profiles\map-aliases.cfgexec profiles\start.cfgsetvar dev_console_password = schwinge-des-todes=============================第二步:把所有文件都关了,打开“我的文档\mygames\Heroes of Might and Magic V\名字\input.cfg”目录,用记事本打开input_a2.cfg 文件打开。
找到// obsolete, but strictly need for compability with some interfacesbind close_window 'ESC'bind confirm_action 'ENTER'在下一行添加bind show_console '`'修改后即为// obsolete, but strictly need for compability with some interfacesbind close_window 'ESC'bind confirm_action 'ENTER'bind show_console '`'bind confirm_action 'NUM_ENTER'//============================================================== =============如果你已经完成如下步骤你就可以进入游戏尝试一番进入游戏,并且开始一种游戏在进行游戏的画面中你按上排数字1的左边“`”,(也就是符号“~”)这是呼出后台管理的。
⼆、Navicat、IDEA、nopad、eclipse、excle⼯具使⽤、问题、快捷键1、Navicat⼯具:⽬的:本地数据库与远程数据库之间数据导⼊导出步骤1:⽂件--新建oracle链接/mysql的连接步骤2:⼯具-选项:将本地oracle的bin\oci.dll 的路径复制过去如:D:\oracle\product\10.2.0\db_1\bin\oci.dll步骤3:数据传输⼯具---数据传输navicat快捷键快捷⽅式 功能ctrl+F 搜索本页数据Ctrl+Q 打开查询窗⼝F7 从这⾥运⾏⼀个语句(即从执⾏当前⾏下⾯的⼀⾏sql语句)Ctrl+/ 注释sql语句Ctrl+Shift +/ 解除注释Ctrl+R 运⾏查询窗⼝的sql语句Ctrl+Shift+R 只运⾏选中的sql语句Ctrl+T 停⽌运⾏F6 打开⼀个mysql命令⾏窗⼝Ctrl+L 删除⼀⾏Ctrl+N 打开⼀个新的查询窗⼝Ctrl+W 关闭⼀个查询窗⼝Ctrl+D (复制当前⾏) 表的数据显⽰显⽰页⾯切换到表的结构设计页⾯,但是在查询页⾯写sql时是复制当前⾏F3 查找下⼀个⽂本2、window2.1cmd命令mstsc 远程连接的快捷命令netstat -an 显⽰所有连接的端⼝并⽤数字表⽰SnippingTool 打开截图⼯具2.1查找和杀死进程查看8005端⼝被哪个进程占⽤了:netstat -ano|findstr 8005查看所有进程信息:netstat -ano查看某个端⼝的进程信息:tasklist|findstr 8688杀死进程:taskkill /pid 8688 -t -f2.3某个应⽤的启动⽇志放到指定⽂件路径下1)C:\Oracle\Middleware\user_projects\domains\base_domain_zjb\bin ⽬录下 输⼊cmd命令 并回车2)startWebLogic.cmd >d:\rizhi.txt3.IDEA使⽤编辑相关:Ctrl+Shift+N 可以快速打开⽂件Ctrl+E 可以显⽰最近浏览的⽂件列表Ctrl+shift+E 显⽰最近编辑的⽂件Ctrl+Shift+Backspace 可以跳转到上次编辑的地⽅Ctrl+Alt+L 格式化代码Ctrl+Alt+O 优化导⼊的类和包Ctrl+X 删除⾏Ctrl+D 复制⾏Alt+F1 查看⽂件的构造()Ctrl+/ 注释//Ctrl+Shift+/ 注释/*...*/选中属性后 alt+enter :创建set和get⽅法shift+esc 最⼩化控制台ctrl+alt+L 格式化代码alt+enter 导⼊缺失的类alt+shift+r 重命名ctrl+alt+v 如果有返回值的话,会⽴即创建返回值信息;-经常⽤ctrl+alt+f 将局部变量⾃动变为成员变量移动:Alt+ Up/Down 在⽅法间快速移动定位Ctrl+Shift+Up/Down 代码向上/下移动Ctrl+Alt+ left/right 返回⾄上次浏览的位置Ctrl+home 光标移动到⽂档开头Ctrl+down 光标移动到⽂档结尾处Fn+left/right 光标移动到⾏开头或结尾Ctrl+[或者] 可以跳到⼤括号的开头结尾亮度:Ctrl+Shift+F7 ⾼亮显⽰所选该⽂本,按Esc⾼亮消失。
英雄无敌5修改器英雄无敌5修改器英雄无敌V 作弊方法这个方法主要使用了一个控制面板,输入命令,达到作弊的目的。
激活控制面板用windows自带的笔记本编辑文件:游戏安装目录\profiles\autoexec.cfg,记得编辑之前备份先,然后在文件的最后一行加入:setvar dev_console_password = schwinge-des-todes这样文件的最后一部分就应该是变成了://===================================== ======================================= // Startupmainmenusetvar dev_console_password = schwinge-des-todes然后进入游戏,正常游戏的状态下点“`”键,一般大键盘上这个键在数字1的左边,(跟CS的那个面板控制器打开是一个键)。
如果你是在找不到或者你的键盘上是在是没有这个键,那么你可以用笔记本打开文件:游戏安装目录\profiles\default_profile\ input.cfg在文件的最后一行加入://debug keys bind show_console '×'将其中的×改为任何一个你键盘上有而且你能找到还不能和游戏快捷键重复的键。
作弊命令add_skill增加一个新技能,具体的格式是在命令后面加上技能的名称或者是ID,add_skill Logistics 或者 add_skill 1不难看出,这样的话,如果你要能够加任何一种你想要的技能/能力/特殊技能,都需要你知道这个技能的准确名称或者是ID,下面就是150种技能/特殊技能/能力的名称和ID-- 共同技能(Basic Skills)SKILL_LOGISTICS = 1SKILL_WAR_MACHINES = 2SKILL_LEARNING = 3SKILL_LEADERSHIP = 4SKILL_LUCK = 5SKILL_OFFENCE = 6SKILL_DEFENCE = 7SKILL_SORCERY = 8SKILL_DESTRUCTIVE_MAGIC = 9SKILL_DARK_MAGIC = 10SKILL_LIGHT_MAGIC = 11SKILL_SUMMONING_MAGIC = 12-- 种族特殊技能(Class skills)SKILL_TRAINING = 13SKILL_GATING = 14SKILL_NECROMANCY = 15SKILL_AVENGER = 16SKILL_ARTIFICIER = 17SKILL_INVOCATION = 18-- 能力(Perks)PERK_PATHFINDING = 19PERK_SCOUTING = 20PERK_NAVIGATION = 21PERK_FIRST_AID = 22PERK_BALLISTA = 23PERK_CATAPULT = 24PERK_INTELLIGENCE = 25PERK_SCHOLAR = 26PERK_EAGLE_EYE = 27PERK_RECRUITMENT = 28PERK_ESTATES = 29PERK_DIPLOMACY = 30PERK_RESISTANCE = 31PERK_LUCKY_STRIKE = 32PERK_FORTUNATE_ADVENTURER = 33 PERK_TACTICS = 34PERK_ARCHERY = 35PERK_FRENZY = 36PERK_PROTECTION = 37PERK_EVASION = 38PERK_TOUGHNESS = 39PERK_MYSTICISM = 40PERK_WISDOM = 41PERK_ARCANE_TRAINING = 42PERK_MASTER_OF_ICE = 43PERK_MASTER_OF_FIRE = 44PERK_MASTER_OF_LIGHTNINGS = 45 PERK_MASTER_OF_CURSES = 46PERK_MASTER_OF_MIND = 47PERK_MASTER_OF_SICKNESS = 48 PERK_MASTER_OF_BLESSING = 49 PERK_MASTER_OF_ABJURATION = 50 PERK_MASTER_OF_WRATH = 51PERK_MASTER_OF_QUAKES = 52PERK_MASTER_OF_CREATURES = 53 PERK_MASTER_OF_ANIMATION = 54-- 圣堂骑士特殊能力(Knight perks)PERK_HOLY_CHARGE = 55PERK_PRAYER = 56PERK_EXPERT_TRAINER = 57-- 地狱领主特殊能力(Demonlord perks)PERK_CONSUME_CORPSE = 58PERK_DEMONIC_FIRE = 59PERK_DEMONIC_STRIKE = 60-- 不死巫师特殊能力(Necromancer perks)PERK_RAISE_ARCHERS = 61PERK_NO_REST_FOR_THE_WICKED = 62 PERK_DEATH_SCREAM = 63-- 森林游侠特殊能力(Ranger perks)PERK_MULTISHOT = 64PERK_SNIPE_DEAD = 65PERK_IMBUE_ARROW = 66-- 学院法师特殊能力(Wizard perks)PERK_MAGIC_BOND = 67PERK_MELT_ARTIFACT = 68PERK_MAGIC_MIRROR = 69-- 黑暗术士特殊技能(Warlock perks)PERK_EMPOWERED_SPELLS = 70PERK_DARK_RITUAL = 71PERK_ELEMENTAL_VISION = 72-- 圣堂骑士职业技能(Knight feat)KNIGHT_FEAT_ROAD_HOME = 73 KNIGHT_FEAT_TRIPLE_BALLISTA = 74 KNIGHT_FEAT_ENCOURAGE = 75 KNIGHT_FEAT_RETRIBUTION = 76 KNIGHT_FEAT_HOLD_GROUND = 77 KNIGHT_FEAT_GUARDIAN_ANGEL = 78 KNIGHT_FEAT_STUDENT_AWARD = 79 KNIGHT_FEAT_GRAIL_VISION = 80 KNIGHT_FEAT_CASTER_CERTIFICATE = 81 KNIGHT_FEAT_ANCIENT_SMITHY = 82 KNIGHT_FEAT_PARIAH = 83KNIGHT_FEAT_ELEMENTAL_BALANCE = 84 KNIGHT_FEAT_ABSOLUTE_CHARGE = 85 -- 地狱领主职业技能(Demon Lord feat)DEMON_FEAT_QUICK_GATING = 86 DEMON_FEAT_MASTER_OF_SECRETS = 87 DEMON_FEAT_TRIPLE_CATAPULT = 88 DEMON_FEAT_GATING_MASTERY = 89DEMON_FEAT_CRITICAL_GATING = 90DEMON_FEAT_CRITICAL_STRIKE = 91DEMON_FEAT_DEMONIC_RETALIATION = 92 DEMON_FEAT_EXPLODING_CORPSES = 93 DEMON_FEAT_DEMONIC_FLAME = 94DEMON_FEAT_WEAKENING_STRIKE = 95 DEMON_FEAT_FIRE_PROTECTION = 96DEMON_FEAT_FIRE_AFFINITY = 97DEMON_FEAT_ABSOLUTE_GATING = 98-- 不死巫师职业技能(Necromancer feat)NECROMANCER_FEAT_DEATH_TREAD = 99 NECROMANCER_FEAT_LAST_AID = 100 NECROMANCER_FEAT_LORD_OF_UNDEAD = 101 NECROMANCER_FEAT_HERALD_OF_DEATH = 102 NECROMANCER_FEAT_DEAD_LUCK = 103 NECROMANCER_FEAT_CHILLING_STEEL = 104 NECROMANCER_FEAT_CHILLING_BONES = 105 NECROMANCER_FEAT_SPELLPROOF_BONES = 106 NECROMANCER_FEAT_DEADLY_COLD = 107 NECROMANCER_FEAT_SPIRIT_LINK = 108 NECROMANCER_FEAT_TWILIGHT = 109 NECROMANCER_FEAT_HAUNT_MINE = 110 NECROMANCER_FEAT_ABSOLUTE_FEAR = 111-- 森林游侠职业技能(Ranger feat)RANGER_FEAT_DISGUISE_AND_RECKON = 112 RANGER_FEAT_IMBUE_BALLISTA = 113 RANGER_FEAT_CUNNING_OF_THE_WOODS = 114 RANGER_FEAT_FOREST_GUARD_EMBLEM = 115 RANGER_FEAT_ELVEN_LUCK = 116RANGER_FEAT_FOREST_RAGE = 117RANGER_FEAT_LAST_STAND = 118RANGER_FEAT_INSIGHTS = 119RANGER_FEAT_SUN_FIRE = 120RANGER_FEAT_SOIL_BURN = 121RANGER_FEAT_STORM_WIND = 122RANGER_FEAT_FOG_VEIL = 123RANGER_FEAT_ABSOLUTE_LUCK = 124-- 学院法师职业技能(Wizard feat)WIZARD_FEAT_MARCH_OF_THE_MACHINES = 125 WIZARD_FEAT_REMOTE_CONTROL = 126 WIZARD_FEAT_ACADEMY_AWARD = 127 WIZARD_FEAT_ARTIFICIAL_GLORY = 128 WIZARD_FEAT_SPOILS_OF_WAR = 129 WIZARD_FEAT_WILDFIRE = 130WIZARD_FEAT_SEAL_OF_PROTECTION = 131 WIZARD_FEAT_COUNTERSPELL = 132WIZARD_FEAT_MAGIC_CUSHION = 133 WIZARD_FEAT_SUPRESS_DARK = 134WIZARD_FEAT_SUPRESS_LIGHT = 135WIZARD_FEAT_UNSUMMON = 136WIZARD_FEAT_ABSOLUTE_WIZARDY = 137-- 黑暗术士职业技能(warlock feat)WARLOCK_FEAT_TELEPORT_ASSAULT = 138 WARLOCK_FEAT_SHAKE_GROUND = 139 WARLOCK_FEAT_DARK_REVELATION = 140 WARLOCK_FEAT_FAST_AND_FURIOUS = 141 WARLOCK_FEAT_LUCKY_SPELLS = 142 WARLOCK_FEAT_POWER_OF_HASTE = 143 WARLOCK_FEAT_POWER_OF_STONE = 144 WARLOCK_FEAT_CHAOTIC_SPELLS = 145WARLOCK_FEAT_SECRETS_OF_DESTRUCTION = 146WARLOCK_FEAT_PAYBACK = 147WARLOCK_FEAT_ELITE_CASTERS = 148WARLOCK_FEAT_ELEMENTAL_OVERKILL = 149WARLOCK_FEAT_ABSOLUTE_CHAINS = 150另外,技能似乎可以突破数量限制,虽然看不到,但是可以感觉得到,有待讨论。
代码辅助编辑器
描述:
在设计与实现自定义宏变量的过程中,由于需要对SQL内容进行编辑,而现有的SQL编辑器并不支持辅助功能,所以设计了这个通用代码辅助编辑器,这个编辑器基于NC中的RichEditor,利用MVC的机制,当编辑器中输入敏感字符如”.”时,就会通知相应的监听器,弹出智能辅助的下拉框,由于模型和视图是分离的,该编辑器还具有良好的扩展性,不仅仅可以作为SQL编辑器,只要设计合适的分词与解析算法,该编辑器可以被任意扩展成其他需要代码辅助功能的用途。
设计与实现:
类结构图:
Model:
本编辑器主要的的Model有两个,一个是Document模型,即用户输入的文本模型,另一个弹出式对话框的List模型,也就是辅助内容模型。
View:如图所示该编辑器的View层主要由两个Swing组件组成,一个是基于JTextArea的CodeAssitantEditor,另一个则是其中的辅助框,我选择使用基于JPopupMenu的一套体系,程序员也可以使用自己的控件作为View
Controller:
ICodeAssistantContextEventListener,用来监听Document变化时派发的CodeAssistantEvent 事件,本编辑器直接使用AbstractPopupMenu实现了该接口,在监听到用户输入文本模型变化事件的同时刷新自己的List模型,也就是刷新自己的辅助内容模型。
时序图:
时序图示出该辅助编辑器工作原理,首先CodeAssistantEditor 监听自身的Document
事件以及键盘事件,如果捕捉到敏感字符(”.”)以及键盘事件—辅助快捷键Alt+/,则向已注册的Listener 派发一个CodeAssistantEvent ,Listener 监听这个事件,并根据这个事件决定自身的辅助算法,将待辅助的内容呈现给用户,在我设计的SQL 辅助编辑器中定义规则如下:
1、 用户输入表名或视图名,再输入”.”时会弹出该表(或视图)所有字段
2、 用户输入不完整的表名或视图名,按下Alt+/会自动查找以当前用户输入的字串开头的
表名。
3、用户输入不完整的字段,按下Alt+/会自动查找以当前用户输入的字串开头的字段名。
扩展:
程序员可以扩展自己的代码辅助功能,原则上只需要实现ICodeAssistantContextEventListener 里的处理事件方法processContextEvent(CodeAssistantEvent context);对上下文事件进行处理就可以,为了方便程序员使用,我提供了一个的抽象实现类AbstractCodeAssistantPopupMenu,这个类封装了大部分解析上下文以及回写辅助内容的算法,程序员直接扩展这个类就可以按照自己的意愿设计辅助代码框,样例参见SQLAssistantPopupMenu。