Skip to content

Instantly share code, notes, and snippets.

View engalar's full-sized avatar

wengao liu engalar

  • https://www.mendix.com/
  • zhuhai/guangdong/china
  • 19:17 (UTC +08:00)
View GitHub Profile
@engalar
engalar / index.html
Last active September 12, 2025 07:24
studio pro plugin for tutorial
<!-- https://gist.github.com/engalar/b84b71693c4d1a8addd458e4eec53da3 -->
<!-- gh gist edit b84b71693c4d1a8addd458e4eec53da3 .\index.html -f index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Simple plugin demo</title>
<!-- 框架依赖: React, Tailwind, Babel, VConsole (引入本地资源,以便离线使用) -->
<script src="assets/react.development.js"></script>
<script src="assets/react-dom.development.js"></script>
@engalar
engalar / index.html
Last active September 12, 2025 07:25
<!--
gh gist edit d4a9cf90c46c4e91cfc16102a1a56579 .\index.html -f index.html
-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mendix Navigation Visualizer</title>
<!-- 框架依赖: React, Tailwind, Babel, VConsole (保持不变) -->
<script src="assets/react.development.js"></script>
@engalar
engalar / a.md
Last active September 3, 2025 08:42
untype路径语法

这个路径是一种混合查询语言,专门用于在Mendix模型中精确定位到任意一个具体的数据点。它的核心在于区分了两种不同的模型层级:单元(Unit)元素(Element),并通过特定的语法在它们之间切换。

以下是对该路径 //Projects$Module[Name='Administration']/DomainModels$DomainModel[0]@DomainModels$Entity[Name='Account']['accessRules'][0]['moduleRoles'][0] 的完整分步解析:


核心概念

  • 单元 (Unit): 可以理解为项目树中的“文件”或“文件夹”。例如,一个模块 (Projects$Module)、一个模块下的领域模型 (DomainModels$DomainModel)、一个页面 (Pages$Page) 都是单元。它们是项目结构的基本组成部分。我们使用 GetUnitsOfType() 来查找它们。
  • 元素 (Element): 可以理解为“文件”内部的具体“内容”。例如,领域模型这个“文件”内部定义的实体 (DomainModels$Entity)、实体上的访问规则、微流中的一个“显示页面”活动,这些都是元素。我们使用 GetElementsOfType() 在一个单元内部查找它们。
@engalar
engalar / main.py
Last active September 2, 2025 01:45
# 这个脚本将逐步解析路径 //Projects$Module[Name='Administration']/DomainModels$DomainModel[0]@DomainModels$Entity[Name='Account']['accessRules'][0]['moduleRoles'][0],找到最终的目标对象(一个模块角色的限定名称 e.g. Administration.Administrator), //Projects$Module[Name='Administration']/Security$ModuleRole[Name='Administrator']。
from System.Collections.Generic import KeyValuePair, IReadOnlyList
from Mendix.StudioPro.ExtensionsAPI.Model.Projects import IProject, IModule
from Mendix.StudioPro.ExtensionsAPI.Model.DomainModels import IEntity, IDomainModel, IAssociation
from Mendix.StudioPro.ExtensionsAPI.Model.Pages import IPage
from Mendix.StudioPro.ExtensionsAPI.Model.Microflows import IMicroflow
from Mendix.StudioPro.ExtensionsAPI.Model.UntypedModel import PropertyType, IModelElement
import json
import clr
@engalar
engalar / index.html
Last active September 3, 2025 05:26
studio pro plugin for visualizer untyped model
<!-- gh gist edit 536df8e04cd5574946a62414abb12ad8 .\index.html -f index.html -->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mendix Model Browser</title>
<script src="assets/react.development.js"></script>
<script src="assets/react-dom.development.js"></script>
<script src="assets/tailwindcss.js"></script>
@engalar
engalar / index.html
Last active August 31, 2025 06:18
Mendix Navigation Visualizer
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mendix Traceability Analyzer (with React Flow)</title>
<script src="assets/react.development.js"></script>
<script src="assets/react-dom.development.js"></script>
<script src="assets/tailwindcss.js"></script>
<script src="assets/babel.min.js"></script>
<script src="assets/vconsole.min.js"></script>
# 1. 初始化与导入
import json
import clr
clr.AddReference("Mendix.StudioPro.ExtensionsAPI")
# 导入关键模型类型
from Mendix.StudioPro.ExtensionsAPI.Model.Projects import IProject, IModule, IFolder
from Mendix.StudioPro.ExtensionsAPI.Model.Microflows import IMicroflow
# 假设 currentApp 已在环境中可用
@engalar
engalar / README.md
Last active June 27, 2025 07:00
mendix studio pro offline install powershell script
#!/bin/bash
# ====================================================================================
#
# Mendix Studio Pro Offline Installer Preparation Tool (v5 - Stderr/Stdout Fix)
#
# Description:
# This script prepares a full offline installer package for Mendix Studio Pro
# on a Linux system, for later installation on Windows.
#
@engalar
engalar / mermaid.user.js
Last active March 3, 2025 03:38
tampermonkey UserScript for mermaid
// ==UserScript==
// @name Mermaid代码可视化
// @namespace http://tampermonkey.net/
// @version 1.0.0
// @description 将网页中的Mermaid代码块转换为可视化图表,每2秒自动检测
// @author You
// @match http://localhost:5678/webhook/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant GM_addStyle
// @grant GM_notification