mirror of
https://github.com/IRBorisov/ConceptPortal.git
synced 2025-06-26 21:10:38 +03:00
Fix graph UI
This commit is contained in:
parent
ecea364d69
commit
b55ad31147
|
@ -16,6 +16,7 @@ function DlgGraphOptions({ hideWindow, initial, onConfirm }:DlgGraphOptionsProps
|
||||||
const [ noHermits, setNoHermits ] = useState(true);
|
const [ noHermits, setNoHermits ] = useState(true);
|
||||||
const [ noTransitive, setNoTransitive ] = useState(false);
|
const [ noTransitive, setNoTransitive ] = useState(false);
|
||||||
const [ noTemplates, setNoTemplates ] = useState(true);
|
const [ noTemplates, setNoTemplates ] = useState(true);
|
||||||
|
const [ noTerms, setNoTerms ] = useState(true);
|
||||||
|
|
||||||
const [ allowBase, setAllowBase ] = useState(true);
|
const [ allowBase, setAllowBase ] = useState(true);
|
||||||
const [ allowStruct, setAllowStruct ] = useState(true);
|
const [ allowStruct, setAllowStruct ] = useState(true);
|
||||||
|
@ -31,6 +32,7 @@ function DlgGraphOptions({ hideWindow, initial, onConfirm }:DlgGraphOptionsProps
|
||||||
noHermits: noHermits,
|
noHermits: noHermits,
|
||||||
noTransitive: noTransitive,
|
noTransitive: noTransitive,
|
||||||
noTemplates: noTemplates,
|
noTemplates: noTemplates,
|
||||||
|
noTerms: noTerms,
|
||||||
|
|
||||||
allowBase: allowBase,
|
allowBase: allowBase,
|
||||||
allowStruct: allowStruct,
|
allowStruct: allowStruct,
|
||||||
|
@ -52,6 +54,7 @@ function DlgGraphOptions({ hideWindow, initial, onConfirm }:DlgGraphOptionsProps
|
||||||
setNoHermits(initial.noHermits);
|
setNoHermits(initial.noHermits);
|
||||||
setNoTransitive(initial.noTransitive);
|
setNoTransitive(initial.noTransitive);
|
||||||
setNoTemplates(initial.noTemplates);
|
setNoTemplates(initial.noTemplates);
|
||||||
|
setNoTerms(initial.noTerms);
|
||||||
|
|
||||||
setAllowBase(initial.allowBase);
|
setAllowBase(initial.allowBase);
|
||||||
setAllowStruct(initial.allowStruct);
|
setAllowStruct(initial.allowStruct);
|
||||||
|
@ -74,6 +77,12 @@ function DlgGraphOptions({ hideWindow, initial, onConfirm }:DlgGraphOptionsProps
|
||||||
<div className='flex gap-2'>
|
<div className='flex gap-2'>
|
||||||
<div className='flex flex-col'>
|
<div className='flex flex-col'>
|
||||||
<h1>Преобразования</h1>
|
<h1>Преобразования</h1>
|
||||||
|
<Checkbox
|
||||||
|
label='Скрыть текст'
|
||||||
|
tooltip='Не отображать термины'
|
||||||
|
value={noTerms}
|
||||||
|
onChange={ event => setNoTerms(event.target.checked) }
|
||||||
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
label='Скрыть несвязанные'
|
label='Скрыть несвязанные'
|
||||||
tooltip='Неиспользуемые конституенты'
|
tooltip='Неиспользуемые конституенты'
|
||||||
|
|
|
@ -43,6 +43,7 @@ export interface GraphEditorParams {
|
||||||
noHermits: boolean
|
noHermits: boolean
|
||||||
noTransitive: boolean
|
noTransitive: boolean
|
||||||
noTemplates: boolean
|
noTemplates: boolean
|
||||||
|
noTerms: boolean
|
||||||
|
|
||||||
allowBase: boolean
|
allowBase: boolean
|
||||||
allowStruct: boolean
|
allowStruct: boolean
|
||||||
|
@ -71,6 +72,7 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
const [ noHermits, setNoHermits ] = useLocalStorage('graph_no_hermits', true);
|
const [ noHermits, setNoHermits ] = useLocalStorage('graph_no_hermits', true);
|
||||||
const [ noTransitive, setNoTransitive ] = useLocalStorage('graph_no_transitive', false);
|
const [ noTransitive, setNoTransitive ] = useLocalStorage('graph_no_transitive', false);
|
||||||
const [ noTemplates, setNoTemplates ] = useLocalStorage('graph_no_templates', false);
|
const [ noTemplates, setNoTemplates ] = useLocalStorage('graph_no_templates', false);
|
||||||
|
const [ noTerms, setNoTerms ] = useLocalStorage('graph_no_terms', false);
|
||||||
const [ allowBase, setAllowBase ] = useLocalStorage('graph_allow_base', true);
|
const [ allowBase, setAllowBase ] = useLocalStorage('graph_allow_base', true);
|
||||||
const [ allowStruct, setAllowStruct ] = useLocalStorage('graph_allow_struct', true);
|
const [ allowStruct, setAllowStruct ] = useLocalStorage('graph_allow_struct', true);
|
||||||
const [ allowTerm, setAllowTerm ] = useLocalStorage('graph_allow_term', true);
|
const [ allowTerm, setAllowTerm ] = useLocalStorage('graph_allow_term', true);
|
||||||
|
@ -170,12 +172,12 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
result.push({
|
result.push({
|
||||||
id: String(node.id),
|
id: String(node.id),
|
||||||
fill: getCstNodeColor(cst, coloringScheme, darkMode),
|
fill: getCstNodeColor(cst, coloringScheme, darkMode),
|
||||||
label: cst.term.resolved ? `${cst.alias}: ${cst.term.resolved}` : cst.alias
|
label: cst.term.resolved && !noTerms ? `${cst.alias}: ${cst.term.resolved}` : cst.alias
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
return result;
|
return result;
|
||||||
}, [schema, coloringScheme, filtered.nodes, darkMode]);
|
}, [schema, coloringScheme, filtered.nodes, darkMode, noTerms]);
|
||||||
|
|
||||||
const edges: GraphEdge[] = useMemo(
|
const edges: GraphEdge[] = useMemo(
|
||||||
() => {
|
() => {
|
||||||
|
@ -205,7 +207,8 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
nodes,
|
nodes,
|
||||||
edges,
|
edges,
|
||||||
type: 'multi', // 'single' | 'multi' | 'multiModifier'
|
type: 'multi', // 'single' | 'multi' | 'multiModifier'
|
||||||
pathSelectionType: 'all',
|
pathSelectionType: 'out',
|
||||||
|
pathHoverType: 'all',
|
||||||
focusOnSelect: false
|
focusOnSelect: false
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@ -241,6 +244,7 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
noHermits: noHermits,
|
noHermits: noHermits,
|
||||||
noTemplates: noTemplates,
|
noTemplates: noTemplates,
|
||||||
noTransitive: noTransitive,
|
noTransitive: noTransitive,
|
||||||
|
noTerms: noTerms,
|
||||||
|
|
||||||
allowBase: allowBase,
|
allowBase: allowBase,
|
||||||
allowStruct: allowStruct,
|
allowStruct: allowStruct,
|
||||||
|
@ -258,6 +262,7 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
setNoHermits(params.noHermits);
|
setNoHermits(params.noHermits);
|
||||||
setNoTransitive(params.noTransitive);
|
setNoTransitive(params.noTransitive);
|
||||||
setNoTemplates(params.noTemplates);
|
setNoTemplates(params.noTemplates);
|
||||||
|
setNoTerms(params.noTerms);
|
||||||
|
|
||||||
setAllowBase(params.allowBase);
|
setAllowBase(params.allowBase);
|
||||||
setAllowStruct(params.allowStruct);
|
setAllowStruct(params.allowStruct);
|
||||||
|
@ -269,7 +274,7 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
setAllowTheorem(params.allowTheorem);
|
setAllowTheorem(params.allowTheorem);
|
||||||
}, [setNoHermits, setNoTransitive, setNoTemplates,
|
}, [setNoHermits, setNoTransitive, setNoTemplates,
|
||||||
setAllowBase, setAllowStruct, setAllowTerm, setAllowAxiom, setAllowFunction,
|
setAllowBase, setAllowStruct, setAllowTerm, setAllowAxiom, setAllowFunction,
|
||||||
setAllowPredicate, setAllowConstant, setAllowTheorem]);
|
setAllowPredicate, setAllowConstant, setAllowTheorem, setNoTerms]);
|
||||||
|
|
||||||
const canvasWidth = useMemo(
|
const canvasWidth = useMemo(
|
||||||
() => {
|
() => {
|
||||||
|
@ -331,16 +336,21 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
onChange={data => { setLayout(data.length > 0 ? data[0].value : GraphLayoutSelector[0].value); }}
|
onChange={data => { setLayout(data.length > 0 ? data[0].value : GraphLayoutSelector[0].value); }}
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
disabled={!is3D}
|
label='Скрыть текст'
|
||||||
label='Анимация вращения'
|
value={noTerms}
|
||||||
value={orbit}
|
onChange={ event => setNoTerms(event.target.checked) }
|
||||||
onChange={ event => setOrbit(event.target.checked) }
|
|
||||||
/>
|
/>
|
||||||
<Checkbox
|
<Checkbox
|
||||||
label='Транзитивная редукция'
|
label='Транзитивная редукция'
|
||||||
value={noTransitive}
|
value={noTransitive}
|
||||||
onChange={ event => setNoTransitive(event.target.checked) }
|
onChange={ event => setNoTransitive(event.target.checked) }
|
||||||
/>
|
/>
|
||||||
|
<Checkbox
|
||||||
|
disabled={!is3D}
|
||||||
|
label='Анимация вращения'
|
||||||
|
value={orbit}
|
||||||
|
onChange={ event => setOrbit(event.target.checked) }
|
||||||
|
/>
|
||||||
|
|
||||||
<Divider margins='mt-3 mb-2' />
|
<Divider margins='mt-3 mb-2' />
|
||||||
|
|
||||||
|
@ -354,7 +364,7 @@ function EditorTermGraph({ onOpenEdit }: EditorTermGraphProps) {
|
||||||
<div
|
<div
|
||||||
key={`${cst.alias}`}
|
key={`${cst.alias}`}
|
||||||
id={`${prefixes.cst_list}${cst.alias}`}
|
id={`${prefixes.cst_list}${cst.alias}`}
|
||||||
className='w-fit min-w-[3rem] rounded-md text-center cursor-pointer]'
|
className='w-fit min-w-[3rem] rounded-md text-center cursor-pointer'
|
||||||
style={ { backgroundColor: getCstNodeColor(cst, adjustedColoring, darkMode), ...dismissedStyle(cstID) }}
|
style={ { backgroundColor: getCstNodeColor(cst, adjustedColoring, darkMode), ...dismissedStyle(cstID) }}
|
||||||
onClick={() => toggleDismissed(cstID)}
|
onClick={() => toggleDismissed(cstID)}
|
||||||
onDoubleClick={() => onOpenEdit(cstID)}
|
onDoubleClick={() => onOpenEdit(cstID)}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user