From e7e5f77db230e7154d68cc2b823d8da7a6b44bbe Mon Sep 17 00:00:00 2001
From: nvollroth <100927440+nvollroth@users.noreply.github.com>
Date: Fri, 10 Jun 2022 10:23:36 +0200
Subject: [PATCH 01/24] switch pc
---
api-editor/gui/src/app/App.tsx | 2 ++
api-editor/gui/src/common/MenuBar.tsx | 6 ++++++
.../packageData/selectionView/SelectionView.tsx | 7 +++++--
.../selectionView/StatisticsView.tsx | 17 +++++++++++++++++
4 files changed, 30 insertions(+), 2 deletions(-)
create mode 100644 api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index f15610348..301872432 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -136,6 +136,7 @@ export const App: React.FC = function () {
layerStyle="subtleBorder"
resize="horizontal"
>
+
test2
{currentUserAction.type === 'attribute' && (
)}
@@ -169,6 +170,7 @@ export const App: React.FC = function () {
{currentUserAction.type === 'rename' && }
+ test
diff --git a/api-editor/gui/src/common/MenuBar.tsx b/api-editor/gui/src/common/MenuBar.tsx
index ba8ccdc71..12c6619b2 100644
--- a/api-editor/gui/src/common/MenuBar.tsx
+++ b/api-editor/gui/src/common/MenuBar.tsx
@@ -138,6 +138,9 @@ export const MenuBar: React.FC = function ({ pythonPackage, filter
settings.push('darkMode');
}
+ const showStatistics = () => {
+
+ };
return (
@@ -183,6 +186,9 @@ export const MenuBar: React.FC = function ({ pythonPackage, filter
Dark mode
+
+ Statistics
+
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 8951d6e45..0be214a84 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -8,6 +8,7 @@ import PythonPackage from '../model/PythonPackage';
import PythonParameter from '../model/PythonParameter';
import ClassView from './ClassView';
import FunctionView from './FunctionView';
+import StatisticsView from './StatisticsView';
import { ModuleView } from './ModuleView';
import ParameterView from './ParameterView';
import AbstractPythonFilter from '../model/filters/AbstractPythonFilter';
@@ -28,13 +29,15 @@ export const SelectionView: React.FC = function ({ pythonPac
}
return (
-
+
+ /*
{declaration instanceof PythonFunction && }
{declaration instanceof PythonClass && }
{declaration instanceof PythonModule && }
{declaration instanceof PythonParameter && }
+ {declaration != null && }
@@ -46,6 +49,6 @@ export const SelectionView: React.FC = function ({ pythonPac
pythonFilter={pythonFilter}
usages={usages}
/>
-
+ */
);
};
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
new file mode 100644
index 000000000..c33a96743
--- /dev/null
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -0,0 +1,17 @@
+import { Heading, Stack, Text as ChakraText } from '@chakra-ui/react';
+import React from 'react';
+import PythonDeclaration from '../model/PythonDeclaration';
+import ParameterNode from './ParameterNode';
+
+interface StatisticsViewProps {
+ pythonDeclaration: PythonDeclaration;
+}
+
+const StatisticsView: React.FC = function ({
+}) {
+ return (
+ Statistics
+ );
+};
+
+export default StatisticsView;
From 3ac13e517f4d832775bade3c1e659cb8cfdcbb75 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 11:36:44 +0200
Subject: [PATCH 02/24] switch pc
---
.../src/features/packageData/selectionView/SelectionView.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 0be214a84..19fc047ae 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -29,7 +29,7 @@ export const SelectionView: React.FC = function ({ pythonPac
}
return (
-
+
/*
From cd4ff4b89894920fa33a22cc7fda66d28f7c07c7 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 13:29:02 +0200
Subject: [PATCH 03/24] switch pc
---
.../features/annotations/annotationSlice.ts | 84 ++++---------------
.../selectionView/StatisticsView.tsx | 42 +++++++++-
2 files changed, 53 insertions(+), 73 deletions(-)
diff --git a/api-editor/gui/src/features/annotations/annotationSlice.ts b/api-editor/gui/src/features/annotations/annotationSlice.ts
index 97254bc73..49e812049 100644
--- a/api-editor/gui/src/features/annotations/annotationSlice.ts
+++ b/api-editor/gui/src/features/annotations/annotationSlice.ts
@@ -63,12 +63,14 @@ export interface AttributeAnnotation {
export type DefaultType = 'string' | 'number' | 'boolean' | 'none';
export type DefaultValue = string | number | boolean | null;
-export interface BoundaryAnnotation {
+export interface Annotation {
/**
* ID of the annotated Python declaration
*/
readonly target: string;
+}
+export interface BoundaryAnnotation extends Annotation {
/**
* The interval specifying possible numeric values
*/
@@ -108,36 +110,21 @@ export enum ComparisonOperator {
UNRESTRICTED,
}
-export interface CalledAfterAnnotation {
- /**
- * ID of the annotated Python declaration
- */
- readonly target: string;
-
+export interface CalledAfterAnnotation extends Annotation{
/**
* Name of the callable to be called first
*/
readonly calledAfterName: string;
}
-export interface CalledAfterTarget {
- /**
- * ID of the annotated Python declaration
- */
- readonly target: string;
-
+export interface CalledAfterTarget extends Annotation{
/**
* Name of the callable to be called first
*/
readonly calledAfterName: string;
}
-export interface ConstantAnnotation {
- /**
- * ID of the annotated Python declaration
- */
- readonly target: string;
-
+export interface ConstantAnnotation extends Annotation{
/**
* Type of default value
*/
@@ -149,12 +136,7 @@ export interface ConstantAnnotation {
readonly defaultValue: DefaultValue;
}
-export interface EnumAnnotation {
- /**
- * ID of the annotated Python declaration.
- */
- target: string;
-
+export interface EnumAnnotation extends Annotation{
/**
* Name of the enum class that should be created.
*/
@@ -167,12 +149,7 @@ export interface EnumPair {
readonly instanceName: string;
}
-export interface GroupAnnotation {
- /**
- * ID of the annotated Python declaration
- */
- readonly target: string;
-
+export interface GroupAnnotation extends Annotation{
/**
* Name of the grouped object
*/
@@ -184,23 +161,14 @@ export interface GroupAnnotation {
readonly parameters: string[];
}
-export interface GroupTarget {
- /**
- * ID of the annotated Python declaration
- */
- readonly target: string;
-
+export interface GroupTarget extends Annotation{
/**
* Name of the grouped object
*/
readonly groupName: string;
}
-export interface MoveAnnotation {
- /**
- * ID of the annotated Python declaration.
- */
- readonly target: string;
+export interface MoveAnnotation extends Annotation{
/**
* Qualified path to the destination
@@ -208,12 +176,7 @@ export interface MoveAnnotation {
readonly destination: string;
}
-export interface OptionalAnnotation {
- /**
- * ID of the annotated Python declaration
- */
- readonly target: string;
-
+export interface OptionalAnnotation extends Annotation{
/**
* Type of default value
*/
@@ -225,37 +188,20 @@ export interface OptionalAnnotation {
readonly defaultValue: DefaultValue;
}
-export interface PureAnnotation {
- /**
- * ID of the annotated Python declaration.
- */
- readonly target: string;
+export interface PureAnnotation extends Annotation{
}
-export interface RenameAnnotation {
- /**
- * ID of the annotated Python declaration.
- */
- readonly target: string;
-
+export interface RenameAnnotation extends Annotation{
/**
* New name for the declaration.
*/
readonly newName: string;
}
-export interface RequiredAnnotation {
- /**
- * ID of the annotated Python declaration.
- */
- readonly target: string;
+export interface RequiredAnnotation extends Annotation{
}
-export interface RemoveAnnotation {
- /**
- * ID of the annotated Python declaration.
- */
- readonly target: string;
+export interface RemoveAnnotation extends Annotation{
}
type UserAction =
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index c33a96743..97bb3d5de 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,16 +1,50 @@
-import { Heading, Stack, Text as ChakraText } from '@chakra-ui/react';
+import { Heading, Button} from '@chakra-ui/react';
import React from 'react';
import PythonDeclaration from '../model/PythonDeclaration';
-import ParameterNode from './ParameterNode';
+import {useAppSelector} from "../../../app/hooks";
+import {selectAnnotations, selectAttribute, Annotation} from "../../annotations/annotationSlice";
interface StatisticsViewProps {
pythonDeclaration: PythonDeclaration;
}
-
const StatisticsView: React.FC = function ({
}) {
+ const annotations = useAppSelector(selectAnnotations);
+ let dict = {};
+ for (const property in annotations){
+ if (Array.isArray(property) && property.length >0){
+ if(property[0] instanceof Annotation){
+ dict[property.toString()] = property.length;
+ console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
+ }
+ //TODO CalledAfterAnnotation and GroupAnnotation
+ }
+ }
+ const boundariesSize = annotations.boundaries.length;
+ const constantsSize = annotations.constants.length;
+ const enumsSize = annotations.enums.length;
+ const optionalsSize = annotations.optionals.length;
+ const movesSize = annotations.moves.length;
+ const groupsSize = annotations.groups.length;
+ const calledAftersSize = annotations.calledAfters.length;
+ const attributesSize = annotations.attributes.length;
+ const puresSize = annotations.pures.length;
+ const renamingsSize = annotations.renamings.length;
+ const requiredsSize = annotations.requireds.length;
+ const removesSize = annotations.removes.length;
+ /*
+
+pures
+renamings
+requireds
+removes
+ */
+
return (
- Statistics
+
+ Statistics
+
+
);
};
From 3f5708066f0bda6ef161779eec8f690023bc81ca Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 13:34:30 +0200
Subject: [PATCH 04/24] switch pc
---
.../src/features/packageData/selectionView/StatisticsView.tsx | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 97bb3d5de..56aedd0c7 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,4 +1,4 @@
-import { Heading, Button} from '@chakra-ui/react';
+import {Heading, Button, VBox} from '@chakra-ui/react';
import React from 'react';
import PythonDeclaration from '../model/PythonDeclaration';
import {useAppSelector} from "../../../app/hooks";
@@ -17,6 +17,7 @@ const StatisticsView: React.FC = function ({
dict[property.toString()] = property.length;
console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
}
+ console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
//TODO CalledAfterAnnotation and GroupAnnotation
}
}
From 7ad9ddcc3119a75f818cc5944630b5e77a86c571 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 13:41:05 +0200
Subject: [PATCH 05/24] switch pc
---
api-editor/gui/src/app/App.tsx | 3 ++-
.../packageData/selectionView/StatisticsView.tsx | 13 +++++--------
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index 301872432..6c188e123 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -48,6 +48,7 @@ import { UsageCountJson, UsageCountStore } from '../features/usages/model/UsageC
import { selectShowUsageImportDialog } from '../features/usages/usageSlice';
import { UsageImportDialog } from '../features/usages/UsageImportDialog';
import { createFilterFromString } from '../features/packageData/model/filters/filterFactory';
+import StatisticsView from "../features/packageData/selectionView/StatisticsView";
export const App: React.FC = function () {
const dispatch = useAppDispatch();
@@ -170,7 +171,7 @@ export const App: React.FC = function () {
{currentUserAction.type === 'rename' && }
- test
+
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 56aedd0c7..cf905afd0 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,4 +1,4 @@
-import {Heading, Button, VBox} from '@chakra-ui/react';
+import {Heading, Button, Box} from '@chakra-ui/react';
import React from 'react';
import PythonDeclaration from '../model/PythonDeclaration';
import {useAppSelector} from "../../../app/hooks";
@@ -13,10 +13,6 @@ const StatisticsView: React.FC = function ({
let dict = {};
for (const property in annotations){
if (Array.isArray(property) && property.length >0){
- if(property[0] instanceof Annotation){
- dict[property.toString()] = property.length;
- console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
- }
console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
//TODO CalledAfterAnnotation and GroupAnnotation
}
@@ -42,10 +38,11 @@ removes
*/
return (
-
+
Statistics
-
-
+
+
+
);
};
From 8769e60fb97508c99c2c966a0050469d3e77779f Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 13:44:22 +0200
Subject: [PATCH 06/24] switch pc
---
.../features/packageData/selectionView/StatisticsView.tsx | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index cf905afd0..174c010ed 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,4 +1,4 @@
-import {Heading, Button, Box} from '@chakra-ui/react';
+import {Heading, Button, Stack} from '@chakra-ui/react';
import React from 'react';
import PythonDeclaration from '../model/PythonDeclaration';
import {useAppSelector} from "../../../app/hooks";
@@ -38,11 +38,11 @@ removes
*/
return (
-
+
Statistics
-
+
);
};
From 7b5cccf94745c4c554f3f1f10025e239d9046ef4 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 13:59:16 +0200
Subject: [PATCH 07/24] switch pc
---
.../features/packageData/selectionView/SelectionView.tsx | 5 ++---
.../features/packageData/selectionView/StatisticsView.tsx | 8 ++------
2 files changed, 4 insertions(+), 9 deletions(-)
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 19fc047ae..71c40c70f 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -29,8 +29,7 @@ export const SelectionView: React.FC = function ({ pythonPac
}
return (
-
- /*
+
{declaration instanceof PythonFunction && }
@@ -49,6 +48,6 @@ export const SelectionView: React.FC = function ({ pythonPac
pythonFilter={pythonFilter}
usages={usages}
/>
- */
+
);
};
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 174c010ed..7c571858f 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,13 +1,9 @@
import {Heading, Button, Stack} from '@chakra-ui/react';
import React from 'react';
-import PythonDeclaration from '../model/PythonDeclaration';
import {useAppSelector} from "../../../app/hooks";
import {selectAnnotations, selectAttribute, Annotation} from "../../annotations/annotationSlice";
-interface StatisticsViewProps {
- pythonDeclaration: PythonDeclaration;
-}
-const StatisticsView: React.FC = function ({
+const StatisticsView: React.FC = function ({
}) {
const annotations = useAppSelector(selectAnnotations);
let dict = {};
@@ -40,7 +36,7 @@ removes
return (
Statistics
-
+
);
From 9ad6606ba0f26f8d0514c65dcce4684e10d24e53 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 14:00:52 +0200
Subject: [PATCH 08/24] switch pc
---
api-editor/gui/src/app/App.tsx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index 6c188e123..bcd374efe 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -171,8 +171,8 @@ export const App: React.FC = function () {
{currentUserAction.type === 'rename' && }
-
-
+ {currentUserAction.type === 'none' && ()}
+ {currentUserAction.type === 'boundary' && ()}
{showAnnotationImportDialog && }
From 7f68d0b760555116ae7227acd3a7ea053c86d93e Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 14:17:05 +0200
Subject: [PATCH 09/24] switch pc
---
.../selectionView/SelectionView.tsx | 3 +-
.../selectionView/StatisticsView.tsx | 49 ++++++++++---------
2 files changed, 28 insertions(+), 24 deletions(-)
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 71c40c70f..1f119d935 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -19,6 +19,7 @@ interface SelectionViewProps {
pythonPackage: PythonPackage;
pythonFilter: AbstractPythonFilter;
usages: UsageCountStore;
+ annotations: Ann
}
export const SelectionView: React.FC = function ({ pythonPackage, pythonFilter, usages }) {
@@ -36,7 +37,7 @@ export const SelectionView: React.FC = function ({ pythonPac
{declaration instanceof PythonClass && }
{declaration instanceof PythonModule && }
{declaration instanceof PythonParameter && }
- {declaration != null && }
+ {declaration == null && }
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 7c571858f..c3880429f 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,37 +1,40 @@
import {Heading, Button, Stack} from '@chakra-ui/react';
import React from 'react';
import {useAppSelector} from "../../../app/hooks";
-import {selectAnnotations, selectAttribute, Annotation} from "../../annotations/annotationSlice";
+import AnnotationSlice, {
+ selectAnnotations,
+ selectAttribute,
+ Annotation,
+ AnnotationsState
+} from "../../annotations/annotationSlice";
+import PythonParameter from "../model/PythonParameter";
-const StatisticsView: React.FC = function ({
+interface StatistiscViewProps {
+ annotations: AnnotationsState;
+}
+
+const StatisticsView: React.FC = function ({
}) {
const annotations = useAppSelector(selectAnnotations);
let dict = {};
- for (const property in annotations){
+ for (let property in annotations){
+ console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
if (Array.isArray(property) && property.length >0){
- console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
//TODO CalledAfterAnnotation and GroupAnnotation
}
}
- const boundariesSize = annotations.boundaries.length;
- const constantsSize = annotations.constants.length;
- const enumsSize = annotations.enums.length;
- const optionalsSize = annotations.optionals.length;
- const movesSize = annotations.moves.length;
- const groupsSize = annotations.groups.length;
- const calledAftersSize = annotations.calledAfters.length;
- const attributesSize = annotations.attributes.length;
- const puresSize = annotations.pures.length;
- const renamingsSize = annotations.renamings.length;
- const requiredsSize = annotations.requireds.length;
- const removesSize = annotations.removes.length;
- /*
-
-pures
-renamings
-requireds
-removes
- */
+ const boundariesSize = Object.keys(annotations.boundaries).length;
+ const constantsSize = Object.keys(annotations.constants).length;
+ const enumsSize = Object.keys(annotations.enums).length;
+ const optionalsSize = Object.keys(annotations.optionals).length;
+ const movesSize = Object.keys(annotations.moves).length;
+ const groupsSize = Object.keys(annotations.groups).length;
+ const calledAftersSize = Object.keys(annotations.calledAfters).length;
+ const attributesSize = Object.keys(annotations.attributes).length;
+ const puresSize = Object.keys(annotations.pures).length;
+ const renamingsSize = Object.keys(annotations.renamings).length;
+ const requiredsSize = Object.keys(annotations.requireds).length;
+ const removesSize = Object.keys(annotations.removes).length;
return (
From 3a231c4cedbe65e1a9fae47f3ea9ddd1309b80ad Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 14:21:17 +0200
Subject: [PATCH 10/24] switch pc
---
api-editor/gui/src/app/App.tsx | 2 +-
.../src/features/packageData/selectionView/SelectionView.tsx | 3 ++-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index bcd374efe..a14fea5ca 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -172,7 +172,7 @@ export const App: React.FC = function () {
{currentUserAction.type === 'none' && ()}
- {currentUserAction.type === 'boundary' && ()}
+ {currentUserAction.type === 'boundary' && ()}
{showAnnotationImportDialog && }
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 1f119d935..7d1e88a9f 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -14,12 +14,13 @@ import ParameterView from './ParameterView';
import AbstractPythonFilter from '../model/filters/AbstractPythonFilter';
import { ActionBar } from './ActionBar';
import { UsageCountStore } from '../../usages/model/UsageCountStore';
+import {AnnotationsState} from "../../annotations/annotationSlice";
interface SelectionViewProps {
pythonPackage: PythonPackage;
pythonFilter: AbstractPythonFilter;
usages: UsageCountStore;
- annotations: Ann
+ annotations: AnnotationsState;
}
export const SelectionView: React.FC = function ({ pythonPackage, pythonFilter, usages }) {
From c4ccc15624c519e5bed31b0d05d676779470a32a Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 14:23:26 +0200
Subject: [PATCH 11/24] switch pc
---
.../src/features/packageData/selectionView/SelectionView.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 7d1e88a9f..a428c2d27 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -23,7 +23,7 @@ interface SelectionViewProps {
annotations: AnnotationsState;
}
-export const SelectionView: React.FC = function ({ pythonPackage, pythonFilter, usages }) {
+export const SelectionView: React.FC = function ({ pythonPackage, pythonFilter, usages, annotations }) {
const declaration = pythonPackage.getByRelativePath(useLocation().pathname.split('/').splice(2));
if (!declaration) {
From 505d8b9bc2f74f2858584dc8654bdf7e74f39db2 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 14:25:50 +0200
Subject: [PATCH 12/24] switch pc
---
api-editor/gui/src/app/App.tsx | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index a14fea5ca..ce731a8c7 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -171,7 +171,7 @@ export const App: React.FC = function () {
{currentUserAction.type === 'rename' && }
- {currentUserAction.type === 'none' && ()}
+ {currentUserAction.type === 'none' && ()}
{currentUserAction.type === 'boundary' && ()}
From eabe86292bc6d0696c147b12d94f5d1efe110ed8 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 10 Jun 2022 16:47:54 +0200
Subject: [PATCH 13/24] Weekend commit
---
api-editor/gui/src/app/App.tsx | 4 +-
.../features/annotations/annotationSlice.ts | 84 +++++++++++++++----
.../selectionView/SelectionView.tsx | 8 +-
.../selectionView/StatisticsView.tsx | 79 ++++++++++++-----
4 files changed, 136 insertions(+), 39 deletions(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index ce731a8c7..c155c4946 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -137,7 +137,6 @@ export const App: React.FC = function () {
layerStyle="subtleBorder"
resize="horizontal"
>
- test2
{currentUserAction.type === 'attribute' && (
)}
@@ -171,8 +170,7 @@ export const App: React.FC = function () {
{currentUserAction.type === 'rename' && }
- {currentUserAction.type === 'none' && ()}
- {currentUserAction.type === 'boundary' && ()}
+
{showAnnotationImportDialog && }
diff --git a/api-editor/gui/src/features/annotations/annotationSlice.ts b/api-editor/gui/src/features/annotations/annotationSlice.ts
index 8ff400241..d3be2f19c 100644
--- a/api-editor/gui/src/features/annotations/annotationSlice.ts
+++ b/api-editor/gui/src/features/annotations/annotationSlice.ts
@@ -63,14 +63,12 @@ export interface AttributeAnnotation {
export type DefaultType = 'string' | 'number' | 'boolean' | 'none';
export type DefaultValue = string | number | boolean | null;
-export interface Annotation {
+export interface BoundaryAnnotation {
/**
* ID of the annotated Python declaration
*/
readonly target: string;
-}
-export interface BoundaryAnnotation extends Annotation {
/**
* The interval specifying possible numeric values
*/
@@ -110,21 +108,36 @@ export enum ComparisonOperator {
UNRESTRICTED,
}
-export interface CalledAfterAnnotation extends Annotation{
+export interface CalledAfterAnnotation {
+ /**
+ * ID of the annotated Python declaration
+ */
+ readonly target: string;
+
/**
* Name of the callable to be called first
*/
readonly calledAfterName: string;
}
-export interface CalledAfterTarget extends Annotation{
+export interface CalledAfterTarget {
+ /**
+ * ID of the annotated Python declaration
+ */
+ readonly target: string;
+
/**
* Name of the callable to be called first
*/
readonly calledAfterName: string;
}
-export interface ConstantAnnotation extends Annotation{
+export interface ConstantAnnotation {
+ /**
+ * ID of the annotated Python declaration
+ */
+ readonly target: string;
+
/**
* Type of default value
*/
@@ -136,7 +149,12 @@ export interface ConstantAnnotation extends Annotation{
readonly defaultValue: DefaultValue;
}
-export interface EnumAnnotation extends Annotation{
+export interface EnumAnnotation {
+ /**
+ * ID of the annotated Python declaration.
+ */
+ target: string;
+
/**
* Name of the enum class that should be created.
*/
@@ -149,7 +167,12 @@ export interface EnumPair {
readonly instanceName: string;
}
-export interface GroupAnnotation extends Annotation{
+export interface GroupAnnotation {
+ /**
+ * ID of the annotated Python declaration
+ */
+ readonly target: string;
+
/**
* Name of the grouped object
*/
@@ -161,14 +184,23 @@ export interface GroupAnnotation extends Annotation{
readonly parameters: string[];
}
-export interface GroupTarget extends Annotation{
+export interface GroupTarget {
+ /**
+ * ID of the annotated Python declaration
+ */
+ readonly target: string;
+
/**
* Name of the grouped object
*/
readonly groupName: string;
}
-export interface MoveAnnotation extends Annotation{
+export interface MoveAnnotation {
+ /**
+ * ID of the annotated Python declaration.
+ */
+ readonly target: string;
/**
* Qualified path to the destination
@@ -176,7 +208,12 @@ export interface MoveAnnotation extends Annotation{
readonly destination: string;
}
-export interface OptionalAnnotation extends Annotation{
+export interface OptionalAnnotation {
+ /**
+ * ID of the annotated Python declaration
+ */
+ readonly target: string;
+
/**
* Type of default value
*/
@@ -188,20 +225,37 @@ export interface OptionalAnnotation extends Annotation{
readonly defaultValue: DefaultValue;
}
-export interface PureAnnotation extends Annotation{
+export interface PureAnnotation {
+ /**
+ * ID of the annotated Python declaration.
+ */
+ readonly target: string;
}
-export interface RenameAnnotation extends Annotation{
+export interface RenameAnnotation {
+ /**
+ * ID of the annotated Python declaration.
+ */
+ readonly target: string;
+
/**
* New name for the declaration.
*/
readonly newName: string;
}
-export interface RequiredAnnotation extends Annotation{
+export interface RequiredAnnotation {
+ /**
+ * ID of the annotated Python declaration.
+ */
+ readonly target: string;
}
-export interface RemoveAnnotation extends Annotation{
+export interface RemoveAnnotation {
+ /**
+ * ID of the annotated Python declaration.
+ */
+ readonly target: string;
}
type UserAction =
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index a428c2d27..fe2468990 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -15,15 +15,18 @@ import AbstractPythonFilter from '../model/filters/AbstractPythonFilter';
import { ActionBar } from './ActionBar';
import { UsageCountStore } from '../../usages/model/UsageCountStore';
import {AnnotationsState} from "../../annotations/annotationSlice";
+import {Setter} from "../../../common/util/types";
interface SelectionViewProps {
pythonPackage: PythonPackage;
pythonFilter: AbstractPythonFilter;
usages: UsageCountStore;
annotations: AnnotationsState;
+ filter: string;
+ setFilter: Setter;
}
-export const SelectionView: React.FC = function ({ pythonPackage, pythonFilter, usages, annotations }) {
+export const SelectionView: React.FC = function ({ pythonPackage, pythonFilter, usages, annotations, filter, setFilter }) {
const declaration = pythonPackage.getByRelativePath(useLocation().pathname.split('/').splice(2));
if (!declaration) {
@@ -38,7 +41,8 @@ export const SelectionView: React.FC = function ({ pythonPac
{declaration instanceof PythonClass && }
{declaration instanceof PythonModule && }
{declaration instanceof PythonParameter && }
- {declaration == null && }
+
+
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index c3880429f..2ff584fe4 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,28 +1,28 @@
-import {Heading, Button, Stack} from '@chakra-ui/react';
+import {Heading, Button, VStack, Wrap, WrapItem, Stack} from '@chakra-ui/react';
import React from 'react';
import {useAppSelector} from "../../../app/hooks";
-import AnnotationSlice, {
+import {
selectAnnotations,
selectAttribute,
- Annotation,
AnnotationsState
} from "../../annotations/annotationSlice";
import PythonParameter from "../model/PythonParameter";
+import AbstractPythonFilter from "../model/filters/AbstractPythonFilter";
+import PythonPackage from "../model/PythonPackage";
+import {UsageCountStore} from "../../usages/model/UsageCountStore";
+import {createFilterFromString} from "../model/filters/filterFactory";
+import {Setter} from "../../../common/util/types";
-interface StatistiscViewProps {
+interface StatisticsViewProps {
annotations: AnnotationsState;
+ filter: string;
+ setFilter: Setter;
}
-const StatisticsView: React.FC = function ({
-}) {
- const annotations = useAppSelector(selectAnnotations);
- let dict = {};
- for (let property in annotations){
- console.log("property: " + property.toString() + " "+Object.getOwnPropertyNames(property))
- if (Array.isArray(property) && property.length >0){
- //TODO CalledAfterAnnotation and GroupAnnotation
- }
- }
+const StatisticsView: React.FC = function ({
+ annotations, filter, setFilter
+ }) {
+
const boundariesSize = Object.keys(annotations.boundaries).length;
const constantsSize = Object.keys(annotations.constants).length;
const enumsSize = Object.keys(annotations.enums).length;
@@ -36,12 +36,53 @@ const StatisticsView: React.FC = function ({
const requiredsSize = Object.keys(annotations.requireds).length;
const removesSize = Object.keys(annotations.removes).length;
- return (
-
- Statistics
-
+ function filterAction(annotation: string) {
+ let annotationFilter = "annotation:@";
+ const filter_string = annotationFilter + annotation;
-
+ //Remove existing annotation filter
+ const filterList = filter.split(" ");
+ let newFilter = "";
+ for (let i = 0; i < filterList.length; i++) {
+ if (!filterList[i].startsWith(annotationFilter)) {
+ newFilter += filterList[i];
+ newFilter += " ";
+ }
+ }
+
+ newFilter += filter_string;
+ setFilter(newFilter);
+ }
+
+ return (
+
+ Statistics
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
};
From 1dbb2b6e43dfc23c5a6394f737e00a305002f3df Mon Sep 17 00:00:00 2001
From: Aclrian <32142988+Aclrian@users.noreply.github.com>
Date: Fri, 10 Jun 2022 17:38:43 +0200
Subject: [PATCH 14/24] fix linter errors
---
api-editor/gui/src/app/App.tsx | 1 -
.../selectionView/SelectionView.tsx | 2 +-
.../selectionView/StatisticsView.tsx | 36 ++++++-------------
3 files changed, 12 insertions(+), 27 deletions(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index c155c4946..720814ca0 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -48,7 +48,6 @@ import { UsageCountJson, UsageCountStore } from '../features/usages/model/UsageC
import { selectShowUsageImportDialog } from '../features/usages/usageSlice';
import { UsageImportDialog } from '../features/usages/UsageImportDialog';
import { createFilterFromString } from '../features/packageData/model/filters/filterFactory';
-import StatisticsView from "../features/packageData/selectionView/StatisticsView";
export const App: React.FC = function () {
const dispatch = useAppDispatch();
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index fe2468990..d88ed259e 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -8,7 +8,7 @@ import PythonPackage from '../model/PythonPackage';
import PythonParameter from '../model/PythonParameter';
import ClassView from './ClassView';
import FunctionView from './FunctionView';
-import StatisticsView from './StatisticsView';
+import {StatisticsView} from './StatisticsView';
import { ModuleView } from './ModuleView';
import ParameterView from './ParameterView';
import AbstractPythonFilter from '../model/filters/AbstractPythonFilter';
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 2ff584fe4..8b0603db8 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,16 +1,6 @@
-import {Heading, Button, VStack, Wrap, WrapItem, Stack} from '@chakra-ui/react';
+import {Heading, Button, VStack, Wrap, WrapItem} from '@chakra-ui/react';
import React from 'react';
-import {useAppSelector} from "../../../app/hooks";
-import {
- selectAnnotations,
- selectAttribute,
- AnnotationsState
-} from "../../annotations/annotationSlice";
-import PythonParameter from "../model/PythonParameter";
-import AbstractPythonFilter from "../model/filters/AbstractPythonFilter";
-import PythonPackage from "../model/PythonPackage";
-import {UsageCountStore} from "../../usages/model/UsageCountStore";
-import {createFilterFromString} from "../model/filters/filterFactory";
+import {AnnotationsState} from "../../annotations/annotationSlice";
import {Setter} from "../../../common/util/types";
interface StatisticsViewProps {
@@ -19,10 +9,7 @@ interface StatisticsViewProps {
setFilter: Setter;
}
-const StatisticsView: React.FC = function ({
- annotations, filter, setFilter
- }) {
-
+export const StatisticsView: React.FC = function ({annotations, filter, setFilter}) {
const boundariesSize = Object.keys(annotations.boundaries).length;
const constantsSize = Object.keys(annotations.constants).length;
const enumsSize = Object.keys(annotations.enums).length;
@@ -36,23 +23,23 @@ const StatisticsView: React.FC = function ({
const requiredsSize = Object.keys(annotations.requireds).length;
const removesSize = Object.keys(annotations.removes).length;
- function filterAction(annotation: string) {
- let annotationFilter = "annotation:@";
- const filter_string = annotationFilter + annotation;
+ const filterAction = (annotation: string) => {
+ const annotationFilter = "annotation:@";
+ const filterString = annotationFilter + annotation;
//Remove existing annotation filter
const filterList = filter.split(" ");
let newFilter = "";
- for (let i = 0; i < filterList.length; i++) {
- if (!filterList[i].startsWith(annotationFilter)) {
- newFilter += filterList[i];
+ for (const element of filterList) {
+ if (!element.startsWith(annotationFilter)) {
+ newFilter += element;
newFilter += " ";
}
}
- newFilter += filter_string;
+ newFilter += filterString;
setFilter(newFilter);
- }
+ };
return (
@@ -86,4 +73,3 @@ const StatisticsView: React.FC = function ({
);
};
-export default StatisticsView;
From 14cc632da726483c38a0f05a5df84fba81eb5d69 Mon Sep 17 00:00:00 2001
From: Aclrian
Date: Fri, 10 Jun 2022 16:09:53 +0000
Subject: [PATCH 15/24] style: apply automatic fixes of linters
---
api-editor/gui/src/app/App.tsx | 9 +-
api-editor/gui/src/common/MenuBar.tsx | 8 +-
.../selectionView/SelectionView.tsx | 18 ++--
.../selectionView/StatisticsView.tsx | 89 ++++++++++++-------
4 files changed, 79 insertions(+), 45 deletions(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index 720814ca0..ab27367de 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -169,7 +169,14 @@ export const App: React.FC = function () {
{currentUserAction.type === 'rename' && }
-
+
{showAnnotationImportDialog && }
diff --git a/api-editor/gui/src/common/MenuBar.tsx b/api-editor/gui/src/common/MenuBar.tsx
index 12c6619b2..d5940d033 100644
--- a/api-editor/gui/src/common/MenuBar.tsx
+++ b/api-editor/gui/src/common/MenuBar.tsx
@@ -138,9 +138,7 @@ export const MenuBar: React.FC = function ({ pythonPackage, filter
settings.push('darkMode');
}
- const showStatistics = () => {
-
- };
+ const showStatistics = () => {};
return (
@@ -187,8 +185,8 @@ export const MenuBar: React.FC = function ({ pythonPackage, filter
- Statistics
-
+ Statistics
+
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index d88ed259e..05aa444a3 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -8,14 +8,14 @@ import PythonPackage from '../model/PythonPackage';
import PythonParameter from '../model/PythonParameter';
import ClassView from './ClassView';
import FunctionView from './FunctionView';
-import {StatisticsView} from './StatisticsView';
+import { StatisticsView } from './StatisticsView';
import { ModuleView } from './ModuleView';
import ParameterView from './ParameterView';
import AbstractPythonFilter from '../model/filters/AbstractPythonFilter';
import { ActionBar } from './ActionBar';
import { UsageCountStore } from '../../usages/model/UsageCountStore';
-import {AnnotationsState} from "../../annotations/annotationSlice";
-import {Setter} from "../../../common/util/types";
+import { AnnotationsState } from '../../annotations/annotationSlice';
+import { Setter } from '../../../common/util/types';
interface SelectionViewProps {
pythonPackage: PythonPackage;
@@ -26,7 +26,14 @@ interface SelectionViewProps {
setFilter: Setter;
}
-export const SelectionView: React.FC = function ({ pythonPackage, pythonFilter, usages, annotations, filter, setFilter }) {
+export const SelectionView: React.FC = function ({
+ pythonPackage,
+ pythonFilter,
+ usages,
+ annotations,
+ filter,
+ setFilter,
+}) {
const declaration = pythonPackage.getByRelativePath(useLocation().pathname.split('/').splice(2));
if (!declaration) {
@@ -41,8 +48,7 @@ export const SelectionView: React.FC = function ({ pythonPac
{declaration instanceof PythonClass && }
{declaration instanceof PythonModule && }
{declaration instanceof PythonParameter && }
-
-
+
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 8b0603db8..f9b68c03b 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,7 +1,7 @@
-import {Heading, Button, VStack, Wrap, WrapItem} from '@chakra-ui/react';
+import { Heading, Button, VStack, Wrap, WrapItem } from '@chakra-ui/react';
import React from 'react';
-import {AnnotationsState} from "../../annotations/annotationSlice";
-import {Setter} from "../../../common/util/types";
+import { AnnotationsState } from '../../annotations/annotationSlice';
+import { Setter } from '../../../common/util/types';
interface StatisticsViewProps {
annotations: AnnotationsState;
@@ -9,7 +9,7 @@ interface StatisticsViewProps {
setFilter: Setter;
}
-export const StatisticsView: React.FC = function ({annotations, filter, setFilter}) {
+export const StatisticsView: React.FC = function ({ annotations, filter, setFilter }) {
const boundariesSize = Object.keys(annotations.boundaries).length;
const constantsSize = Object.keys(annotations.constants).length;
const enumsSize = Object.keys(annotations.enums).length;
@@ -24,16 +24,16 @@ export const StatisticsView: React.FC = function ({annotati
const removesSize = Object.keys(annotations.removes).length;
const filterAction = (annotation: string) => {
- const annotationFilter = "annotation:@";
+ const annotationFilter = 'annotation:@';
const filterString = annotationFilter + annotation;
//Remove existing annotation filter
- const filterList = filter.split(" ");
- let newFilter = "";
+ const filterList = filter.split(' ');
+ let newFilter = '';
for (const element of filterList) {
if (!element.startsWith(annotationFilter)) {
newFilter += element;
- newFilter += " ";
+ newFilter += ' ';
}
}
@@ -43,33 +43,56 @@ export const StatisticsView: React.FC = function ({annotati
return (
- Statistics
+
+ Statistics
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
);
};
-
From 3f60d130df11c59497aeeb411514e69bb167b497 Mon Sep 17 00:00:00 2001
From: Lars Reimann
Date: Sat, 11 Jun 2022 16:20:23 +0200
Subject: [PATCH 16/24] refactor: pull data from new Redux slices
---
api-editor/gui/src/app/App.tsx | 12 +---
.../packageData/PackageDataImportDialog.tsx | 8 +--
.../selectionView/SelectionView.tsx | 59 +++++++------------
.../selectionView/StatisticsView.tsx | 29 +++++----
4 files changed, 39 insertions(+), 69 deletions(-)
diff --git a/api-editor/gui/src/app/App.tsx b/api-editor/gui/src/app/App.tsx
index 7477327f6..916e43e2d 100644
--- a/api-editor/gui/src/app/App.tsx
+++ b/api-editor/gui/src/app/App.tsx
@@ -39,7 +39,6 @@ import {
selectShowAPIImportDialog,
selectShowUsageImportDialog,
selectUI,
- setFilterString,
} from '../features/ui/uiSlice';
import { initializeUsages, persistUsages, selectUsages } from '../features/usages/usageSlice';
import { initializePythonPackage, selectPythonPackage } from '../features/packageData/apiSlice';
@@ -120,18 +119,11 @@ export const App: React.FC = function () {
{currentUserAction.type === 'rename' && }
-
+
{showAnnotationImportDialog && }
- {showAPIImportDialog && }
+ {showAPIImportDialog && }
{showUsagesImportDialog && }
;
-}
-
-export const PackageDataImportDialog: React.FC = function ({ setFilter }) {
+export const PackageDataImportDialog: React.FC = function () {
const [fileName, setFileName] = useState('');
const [newPythonPackage, setNewPythonPackage] = useState();
const navigate = useNavigate();
@@ -46,7 +41,6 @@ export const PackageDataImportDialog: React.FC =
dispatch(resetAnnotations());
dispatch(resetUI());
dispatch(resetUsages());
- setFilter('is:public');
navigate('/');
}
};
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index fdd437065..c32edff60 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -1,40 +1,25 @@
-import {Box, Spacer, VStack} from '@chakra-ui/react';
+import { Box, Spacer, VStack } from '@chakra-ui/react';
import React from 'react';
-import {useLocation} from 'react-router';
+import { useLocation } from 'react-router';
import PythonClass from '../model/PythonClass';
import PythonFunction from '../model/PythonFunction';
import PythonModule from '../model/PythonModule';
-import PythonPackage from '../model/PythonPackage';
import PythonParameter from '../model/PythonParameter';
-import {ClassView} from './ClassView';
-import {FunctionView} from './FunctionView';
-import {ModuleView} from './ModuleView';
-import {ParameterView} from './ParameterView';
-import {AbstractPythonFilter} from '../model/filters/AbstractPythonFilter';
-import {ActionBar} from './ActionBar';
-import {UsageCountStore} from '../../usages/model/UsageCountStore';
-import {AnnotationsStore} from '../../annotations/annotationSlice';
-import {Setter} from '../../../common/util/types';
-import {StatisticsView} from './StatisticsView';
+import { ClassView } from './ClassView';
+import { FunctionView } from './FunctionView';
+import { ModuleView } from './ModuleView';
+import { ParameterView } from './ParameterView';
+import { ActionBar } from './ActionBar';
+import { StatisticsView } from './StatisticsView';
+import { useAppSelector } from '../../../app/hooks';
+import { selectPythonPackage } from '../apiSlice';
+import { selectFilter } from '../../ui/uiSlice';
+import { selectUsages } from '../../usages/usageSlice';
-
-interface SelectionViewProps {
- pythonPackage: PythonPackage;
- pythonFilter: AbstractPythonFilter;
- usages: UsageCountStore;
- annotations: AnnotationsStore;
- filter: string;
- setFilter: Setter;
-}
-
-export const SelectionView: React.FC = function ({
- pythonPackage,
- pythonFilter,
- usages,
- annotations,
- filter,
- setFilter,
- }) {
+export const SelectionView: React.FC = function () {
+ const pythonPackage = useAppSelector(selectPythonPackage);
+ const pythonFilter = useAppSelector(selectFilter);
+ const usages = useAppSelector(selectUsages);
const declaration = pythonPackage.getByRelativePath(useLocation().pathname.split('/').splice(2));
if (!declaration) {
@@ -45,15 +30,15 @@ export const SelectionView: React.FC = function ({
- {declaration instanceof PythonFunction && }
- {declaration instanceof PythonClass && }
- {declaration instanceof PythonModule && }
- {declaration instanceof PythonParameter && }
-
+ {declaration instanceof PythonFunction && }
+ {declaration instanceof PythonClass && }
+ {declaration instanceof PythonModule && }
+ {declaration instanceof PythonParameter && }
+
-
+
;
-}
+export const StatisticsView: React.FC = function () {
+ const annotations = useAppSelector(selectAnnotations);
+ const filterString = useAppSelector(selectFilterString);
+ const dispatch = useAppDispatch();
-export const StatisticsView: React.FC = function ({ annotations, filter, setFilter }) {
const boundariesSize = Object.keys(annotations.boundaries).length;
const constantsSize = Object.keys(annotations.constants).length;
const enumsSize = Object.keys(annotations.enums).length;
@@ -24,21 +23,21 @@ export const StatisticsView: React.FC = function ({ annotat
const removesSize = Object.keys(annotations.removes).length;
const filterAction = (annotation: string) => {
- const annotationFilter = 'annotation:@';
- const filterString = annotationFilter + annotation;
+ const annotationFilterPrefix = 'annotation:@';
+ const annotationFilterString = annotationFilterPrefix + annotation;
//Remove existing annotation filter
- const filterList = filter.split(' ');
+ const filterList = filterString.split(' ');
let newFilter = '';
for (const element of filterList) {
- if (!element.startsWith(annotationFilter)) {
+ if (!element.startsWith(annotationFilterPrefix)) {
newFilter += element;
newFilter += ' ';
}
}
- newFilter += filterString;
- setFilter(newFilter);
+ newFilter += annotationFilterString;
+ dispatch(setFilterString(newFilter));
};
return (
From 12c829d57b97a972cebf57b94586581a8f517988 Mon Sep 17 00:00:00 2001
From: Lars Reimann
Date: Sun, 12 Jun 2022 22:27:35 +0200
Subject: [PATCH 17/24] fix: lint error
---
.../gui/src/features/packageData/selectionView/SelectionView.tsx | 1 -
1 file changed, 1 deletion(-)
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 0a9e9c531..ce2026d0d 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -4,7 +4,6 @@ import { useLocation } from 'react-router';
import { PythonClass } from '../model/PythonClass';
import { PythonFunction } from '../model/PythonFunction';
import { PythonModule } from '../model/PythonModule';
-import { PythonPackage } from '../model/PythonPackage';
import { PythonParameter } from '../model/PythonParameter';
import { ClassView } from './ClassView';
import { FunctionView } from './FunctionView';
From 0e93a30e33258b2057ac2c835df56f3e6c2c3985 Mon Sep 17 00:00:00 2001
From: Lars Reimann
Date: Tue, 14 Jun 2022 13:51:18 +0200
Subject: [PATCH 18/24] fxi(gui): build error after merging
---
api-editor/gui/src/common/MenuBar.tsx | 1 +
1 file changed, 1 insertion(+)
diff --git a/api-editor/gui/src/common/MenuBar.tsx b/api-editor/gui/src/common/MenuBar.tsx
index f0b01a52f..5538a0c7a 100644
--- a/api-editor/gui/src/common/MenuBar.tsx
+++ b/api-editor/gui/src/common/MenuBar.tsx
@@ -64,6 +64,7 @@ export const MenuBar: React.FC = function ({ displayInferErrors })
colorModeArray.push('darkMode');
}
+ const showStatistics = () => {};
return (
From 668de94c627950c27d17734c76886b6c5b318d15 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 17 Jun 2022 11:22:54 +0200
Subject: [PATCH 19/24] include basic implementation from
feat statistics View with bar and line charts
and some minor changes
---
api-editor/gui/src/common/MenuBar.tsx | 8 ++++++++
.../packageData/selectionView/SelectionView.tsx | 14 +++++++++++++-
.../packageData/selectionView/StatisticsView.tsx | 7 +++++--
3 files changed, 26 insertions(+), 3 deletions(-)
diff --git a/api-editor/gui/src/common/MenuBar.tsx b/api-editor/gui/src/common/MenuBar.tsx
index 5538a0c7a..cde757cd0 100644
--- a/api-editor/gui/src/common/MenuBar.tsx
+++ b/api-editor/gui/src/common/MenuBar.tsx
@@ -36,6 +36,7 @@ import { DeleteAllAnnotations } from './DeleteAllAnnotations';
import { GenerateAdapters } from './GenerateAdapters';
import { FilterInput } from './FilterInput';
import { selectNumberOfMatchedNodes } from '../features/packageData/apiSlice';
+import { useNavigate } from "react-router-dom";
interface MenuBarProps {
displayInferErrors: (errors: string[]) => void;
@@ -44,6 +45,7 @@ interface MenuBarProps {
export const MenuBar: React.FC = function ({ displayInferErrors }) {
const { colorMode, toggleColorMode } = useColorMode();
const dispatch = useAppDispatch();
+ const navigate = useNavigate();
const annotationStore = useAppSelector(selectAnnotations);
const sortingMode = useAppSelector(selectSortingMode);
@@ -59,6 +61,11 @@ export const MenuBar: React.FC = function ({ displayInferErrors })
a.click();
};
+ const setStatisticsViewPath = () => {
+ const tmp = 'statisticsView';
+ navigate(`/${tmp}`);
+ };
+
const colorModeArray: string[] = [];
if (colorMode === 'dark') {
colorModeArray.push('darkMode');
@@ -173,6 +180,7 @@ export const MenuBar: React.FC = function ({ displayInferErrors })
+
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index 9ce4ca3f0..bdf5e898b 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -16,6 +16,19 @@ import { StatisticsView } from './StatisticsView';
export const SelectionView: React.FC = function () {
const rawPythonPackage = useAppSelector(selectRawPythonPackage);
const declaration = rawPythonPackage.getDeclarationById(useLocation().pathname.split('/').splice(1).join('/'));
+ const location = useLocation().pathname;
+
+ if (location === '/statisticsView') {
+ return (
+
+
+
+
+
+
+
+ );
+ }
if (!declaration) {
return null;
@@ -29,7 +42,6 @@ export const SelectionView: React.FC = function () {
{declaration instanceof PythonClass && }
{declaration instanceof PythonModule && }
{declaration instanceof PythonParameter && }
-
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 4a203782d..b40a04024 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,4 +1,4 @@
-import { Button, Heading, VStack, Wrap, WrapItem } from '@chakra-ui/react';
+import {Button, Heading, VStack, Wrap, WrapItem} from '@chakra-ui/react';
import React from 'react';
import { selectAnnotations } from '../../annotations/annotationSlice';
import { useAppDispatch, useAppSelector } from '../../../app/hooks';
@@ -45,7 +45,10 @@ export const StatisticsView: React.FC = function () {
Statistics
-
+
+ Annotations
+
+
-
+
Statistics
@@ -180,7 +179,6 @@ export const MenuBar: React.FC = function ({ displayInferErrors })
-
From 902c1afac93a393e25b2d27383f98bd12f9544f0 Mon Sep 17 00:00:00 2001
From: bongartz
Date: Fri, 17 Jun 2022 14:47:56 +0200
Subject: [PATCH 21/24] remove unknown changes
---
.../packageData/PackageDataImportDialog.tsx | 4 ++--
api-editor/gui/src/features/ui/uiSlice.ts | 21 ++++++++++++++++++-
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/api-editor/gui/src/features/packageData/PackageDataImportDialog.tsx b/api-editor/gui/src/features/packageData/PackageDataImportDialog.tsx
index 1af43da52..5c7ea7395 100644
--- a/api-editor/gui/src/features/packageData/PackageDataImportDialog.tsx
+++ b/api-editor/gui/src/features/packageData/PackageDataImportDialog.tsx
@@ -20,7 +20,7 @@ import { StyledDropzone } from '../../common/StyledDropzone';
import { isValidJsonFile } from '../../common/util/validation';
import { resetAnnotations } from '../annotations/annotationSlice';
import { parsePythonPackageJson, PythonPackageJson } from './model/PythonPackageBuilder';
-import { resetUI, toggleAPIImportDialog } from '../ui/uiSlice';
+import { resetUIAfterAPIImport, toggleAPIImportDialog } from '../ui/uiSlice';
import { persistPythonPackage, setPythonPackage } from './apiSlice';
import { resetUsages } from '../usages/usageSlice';
@@ -39,8 +39,8 @@ export const PackageDataImportDialog: React.FC = function () {
// Reset other slices
dispatch(resetAnnotations());
- dispatch(resetUI());
dispatch(resetUsages());
+ dispatch(resetUIAfterAPIImport());
navigate('/');
}
};
diff --git a/api-editor/gui/src/features/ui/uiSlice.ts b/api-editor/gui/src/features/ui/uiSlice.ts
index 4e2dbdd6f..e57cd0633 100644
--- a/api-editor/gui/src/features/ui/uiSlice.ts
+++ b/api-editor/gui/src/features/ui/uiSlice.ts
@@ -115,10 +115,12 @@ export const initialState: UIState = {
showUsageImportDialog: false,
currentUserAction: NoUserAction,
+
expandedInTreeView: {},
treeViewScrollOffset: 0,
- heatMapMode: HeatMapMode.None,
filterString: 'is:public',
+
+ heatMapMode: HeatMapMode.None,
sortingMode: SortingMode.Alphabetical,
};
@@ -159,6 +161,22 @@ const uiSlice = createSlice({
resetUI() {
return initialState;
},
+ resetUIAfterAPIImport(state) {
+ return {
+ ...state,
+
+ showAnnotationImportDialog: initialState.showAnnotationImportDialog,
+ showAPIImportDialog: initialState.showAPIImportDialog,
+ showUsageImportDialog: initialState.showUsageImportDialog,
+
+ currentUserAction: initialState.currentUserAction,
+
+ expandedInTreeView: initialState.expandedInTreeView,
+ treeViewScrollOffset: initialState.treeViewScrollOffset,
+
+ filterString: initialState.filterString,
+ };
+ },
toggleAnnotationImportDialog(state) {
state.showAnnotationImportDialog = !state.showAnnotationImportDialog;
@@ -286,6 +304,7 @@ const { actions, reducer } = uiSlice;
export const {
setUI,
resetUI,
+ resetUIAfterAPIImport,
toggleAnnotationImportDialog,
hideAnnotationImportDialog,
From a2775dac379c1dfb593cfac0c53f99d7090cd222 Mon Sep 17 00:00:00 2001
From: Aclrian
Date: Fri, 17 Jun 2022 12:52:55 +0000
Subject: [PATCH 22/24] style: apply automatic fixes of linters
---
api-editor/gui/src/common/MenuBar.tsx | 2 +-
.../src/features/packageData/selectionView/SelectionView.tsx | 2 +-
.../src/features/packageData/selectionView/StatisticsView.tsx | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/api-editor/gui/src/common/MenuBar.tsx b/api-editor/gui/src/common/MenuBar.tsx
index 82f089c9d..d02565c6d 100644
--- a/api-editor/gui/src/common/MenuBar.tsx
+++ b/api-editor/gui/src/common/MenuBar.tsx
@@ -36,7 +36,7 @@ import { DeleteAllAnnotations } from './DeleteAllAnnotations';
import { GenerateAdapters } from './GenerateAdapters';
import { FilterInput } from './FilterInput';
import { selectNumberOfMatchedNodes } from '../features/packageData/apiSlice';
-import { useNavigate } from "react-router-dom";
+import { useNavigate } from 'react-router-dom';
interface MenuBarProps {
displayInferErrors: (errors: string[]) => void;
diff --git a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
index bdf5e898b..279cfd65b 100644
--- a/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/SelectionView.tsx
@@ -23,7 +23,7 @@ export const SelectionView: React.FC = function () {
-
+
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index b40a04024..3d771a26a 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -1,4 +1,4 @@
-import {Button, Heading, VStack, Wrap, WrapItem} from '@chakra-ui/react';
+import { Button, Heading, VStack, Wrap, WrapItem } from '@chakra-ui/react';
import React from 'react';
import { selectAnnotations } from '../../annotations/annotationSlice';
import { useAppDispatch, useAppSelector } from '../../../app/hooks';
From 15bd61e9d173250aa58979f664c681858d5a5a76 Mon Sep 17 00:00:00 2001
From: Lars Reimann
Date: Fri, 17 Jun 2022 16:33:33 +0200
Subject: [PATCH 23/24] refactor(gui): inline a variable
---
api-editor/gui/src/common/MenuBar.tsx | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/api-editor/gui/src/common/MenuBar.tsx b/api-editor/gui/src/common/MenuBar.tsx
index d02565c6d..54c3ddd62 100644
--- a/api-editor/gui/src/common/MenuBar.tsx
+++ b/api-editor/gui/src/common/MenuBar.tsx
@@ -62,8 +62,7 @@ export const MenuBar: React.FC = function ({ displayInferErrors })
};
const setStatisticsViewPath = () => {
- const tmp = 'statisticsView';
- navigate(`/${tmp}`);
+ navigate(`/statisticsView`);
};
const colorModeArray: string[] = [];
From 0810e94e9cc0f3f58c8e29329f9e82fc53b1f04b Mon Sep 17 00:00:00 2001
From: Lars Reimann
Date: Fri, 17 Jun 2022 16:36:49 +0200
Subject: [PATCH 24/24] feat(gui): add annotations `@description` and `@todo`
---
.../packageData/selectionView/StatisticsView.tsx | 11 +++++++++++
1 file changed, 11 insertions(+)
diff --git a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
index 3d771a26a..7d9137122 100644
--- a/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
+++ b/api-editor/gui/src/features/packageData/selectionView/StatisticsView.tsx
@@ -11,6 +11,7 @@ export const StatisticsView: React.FC = function () {
const boundariesSize = Object.keys(annotations.boundaries).length;
const constantsSize = Object.keys(annotations.constants).length;
+ const descriptionSize = Object.keys(annotations.descriptions).length;
const enumsSize = Object.keys(annotations.enums).length;
const optionalsSize = Object.keys(annotations.optionals).length;
const movesSize = Object.keys(annotations.moves).length;
@@ -21,6 +22,7 @@ export const StatisticsView: React.FC = function () {
const renamingsSize = Object.keys(annotations.renamings).length;
const requiredsSize = Object.keys(annotations.requireds).length;
const removesSize = Object.keys(annotations.removes).length;
+ const todoSize = Object.keys(annotations.todos).length;
const filterAction = (annotation: string) => {
const annotationFilterPrefix = 'annotation:@';
@@ -70,6 +72,12 @@ export const StatisticsView: React.FC = function () {
+
+
+
@@ -93,6 +101,9 @@ export const StatisticsView: React.FC = function () {
+ {' '}
+
+