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
  • 14:40 (UTC +08:00)
View GitHub Profile
@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 24, 2025 09:31
studio pro plugin for visualizer untyped model
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Mendix Model Browser (RxJS Refactor)</title>
<script src="assets/tailwindcss.js"></script>
<style>
.copy-icon {
opacity: 0.2;
@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
@engalar
engalar / notion.user.js
Last active February 26, 2025 06:16
tampermonkey
// ==UserScript==
// @name Notion
// @namespace http://tampermonkey.net/
// @version 1.2.1
// @description try to take over the world!
// @author You
// @match https://www.notion.so/*
// @icon data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==
// @grant GM_xmlhttpRequest
// @grant GM_notification
@engalar
engalar / index.html
Created November 21, 2024 10:48
mediaDevices test
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>拍照示例</title>
<style>
video, canvas {
display: block;
margin: 10px auto;