You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@streampipes.apache.org by ze...@apache.org on 2020/09/11 07:16:44 UTC

[incubator-streampipes] 01/02: Move line chart labeling to data explorer module

This is an automated email from the ASF dual-hosted git repository.

zehnder pushed a commit to branch STREAMPIPES-234
in repository https://gitbox.apache.org/repos/asf/incubator-streampipes.git

commit a9fe97a69dfc34275e41195769ff92d60ef4e589
Author: Philipp Zehnder <ze...@fzi.de>
AuthorDate: Wed Sep 9 18:54:22 2020 +0200

    Move line chart labeling to data explorer module
---
 .../rest/impl/datalake/DataLakeManagementV3.java   |   4 +-
 .../rest/impl/datalake/DataLakeResourceV3.java     |   9 +-
 .../datalake/datalake-rest.service.ts              |   4 +-
 .../labeling-tool/labeling-tool.module.ts          |  90 ------------------
 .../label-selection/label-selection.component.css  |   0
 .../label-selection/label-selection.component.html |   0
 .../label-selection/label-selection.component.ts   |   2 +-
 .../point-selection-info.component.css             |   0
 .../point-selection-info.component.html            |   0
 .../point-selection-info.component.ts              |   2 +-
 .../change-chartmode/change-chartmode.dialog.css   |   0
 .../change-chartmode/change-chartmode.dialog.html  |   0
 .../change-chartmode/change-chartmode.dialog.ts    |   2 +-
 .../dialogs/labeling/labeling.dialog.css           |   0
 .../dialogs/labeling/labeling.dialog.html          |   0
 .../dialogs/labeling/labeling.dialog.ts            |   0
 .../line-chart/line-chart-widget.component.html    |   4 +-
 .../line-chart/line-chart-widget.component.ts      |  31 ++++---
 .../widgets/line-chart}/services/color.service.ts  |   0
 ui/src/app/data-explorer/data-explorer.module.ts   | 103 +++++++++++----------
 20 files changed, 87 insertions(+), 164 deletions(-)

diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeManagementV3.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeManagementV3.java
index 8d64aa9..d2cb97f 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeManagementV3.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeManagementV3.java
@@ -602,7 +602,7 @@ public class DataLakeManagementV3 {
     return route;
   }
 
-  public void updateLabels(String index, String labelColumn, long startdate, long enddate, String label) {
+  public void updateLabels(String index, String labelColumn, long startdate, long enddate, String label, String timestampColumn) {
     DataResult queryResult = getEvents(index, startdate, enddate);
     Map<String, String> headerWithTypes = getHeadersWithTypes(index);
     List<String> headers = queryResult.getHeaders();
@@ -611,7 +611,7 @@ public class DataLakeManagementV3 {
     influxDB.setDatabase(BackendConfig.INSTANCE.getInfluxDatabaseName());
 
     for (List<Object> row : queryResult.getRows()) {
-      long timestampValue = Math.round((double) row.get(headers.indexOf("timestamp")));
+      long timestampValue = Math.round((double) row.get(headers.indexOf(timestampColumn)));
 
       Point.Builder p = Point.measurement(index).time(timestampValue, TimeUnit.MILLISECONDS);
 
diff --git a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
index 6afbe83..d94c2fe 100644
--- a/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
+++ b/streampipes-rest/src/main/java/org/apache/streampipes/rest/impl/datalake/DataLakeResourceV3.java
@@ -232,15 +232,16 @@ public class DataLakeResourceV3 extends AbstractRestInterface {
 
   @POST
   @Produces(MediaType.TEXT_PLAIN)
-  @Path("/data/{index}/{startdate}/{enddate}/labeling/{column}")
+  @Path("/data/{index}/{startdate}/{enddate}/labeling/{column}/{timestampColumn}")
     public Response labelData(@Context UriInfo info,
                               @PathParam("index") String index,
                               @PathParam("startdate") long startdate,
                               @PathParam("enddate") long enddate,
-                              @PathParam("column") String column) {
+                              @PathParam("column") String column,
+                              @PathParam("timestampColumn") String timestampColumn) {
 
-        String label = info.getQueryParameters().getFirst("label");
-        this.dataLakeManagement.updateLabels(index, column, startdate, enddate, label);
+      String label = info.getQueryParameters().getFirst("label");
+    this.dataLakeManagement.updateLabels(index, column, startdate, enddate, label, timestampColumn);
 
         return Response.ok("Successfully updated database.", MediaType.TEXT_PLAIN).build();
   }
diff --git a/ui/src/app/core-services/datalake/datalake-rest.service.ts b/ui/src/app/core-services/datalake/datalake-rest.service.ts
index 26be418..a78631a 100644
--- a/ui/src/app/core-services/datalake/datalake-rest.service.ts
+++ b/ui/src/app/core-services/datalake/datalake-rest.service.ts
@@ -130,9 +130,9 @@ export class DatalakeRestService {
       return this.http.delete(this.dataLakeUrlV3 + '/data/delete/all');
     }
 
-    saveLabelsInDatabase(index, labelColumn, startDate, endDate, label) {
+    saveLabelsInDatabase(index, labelColumn, startDate, endDate, label, timestampColumn) {
         const request = new HttpRequest('POST', this.dataLakeUrlV3 + '/data/' + index + '/' + startDate + '/' +
-            endDate + '/labeling/' + labelColumn + '?label=' + label,  {}, {
+            endDate + '/labeling/' + labelColumn + '/' + timestampColumn + '?label=' + label ,  {}, {
             reportProgress: true,
             responseType: 'text'
         });
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/labeling-tool.module.ts b/ui/src/app/core-ui/linechart/labeling-tool/labeling-tool.module.ts
deleted file mode 100644
index f43bab9..0000000
--- a/ui/src/app/core-ui/linechart/labeling-tool/labeling-tool.module.ts
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one or more
- * contributor license agreements.  See the NOTICE file distributed with
- * this work for additional information regarding copyright ownership.
- * The ASF licenses this file to You under the Apache License, Version 2.0
- * (the "License"); you may not use this file except in compliance with
- * the License.  You may obtain a copy of the License at
- *
- *    http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- *
- */
-
-import { NgModule } from '@angular/core';
-
-import { DragDropModule } from '@angular/cdk/drag-drop';
-import { MatChipsModule } from '@angular/material/chips';
-import { MatDialogModule } from '@angular/material/dialog';
-import { MatIconModule } from '@angular/material/icon';
-import { MatInputModule } from '@angular/material/input';
-import { MatTooltipModule } from '@angular/material/tooltip';
-import { LabelSelectionComponent } from './components/label-selection/label-selection.component';
-import { PointSelectionInfoComponent } from './components/point-selection-info/point-selection-info.component';
-import { ChangeChartmodeDialog } from './dialogs/change-chartmode/change-chartmode.dialog';
-import { LabelingDialog } from './dialogs/labeling/labeling.dialog';
-import { ColorService } from './services/color.service';
-import {CommonModule} from "@angular/common";
-import {FlexLayoutModule} from "@angular/flex-layout";
-import {CustomMaterialModule} from "../../../CustomMaterial/custom-material.module";
-import {FormsModule, ReactiveFormsModule} from "@angular/forms";
-import {CdkTableModule} from "@angular/cdk/table";
-import {MatSnackBarModule} from "@angular/material/snack-bar";
-import {MatProgressSpinnerModule} from "@angular/material/progress-spinner";
-import {MatDatepickerModule} from "@angular/material/datepicker";
-import {MatNativeDateModule} from "@angular/material/core";
-import {PlotlyViaWindowModule} from "angular-plotly.js";
-
-
-export const MY_NATIVE_FORMATS = {
-    fullPickerInput: {year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric', hour12: false},
-    datePickerInput: {year: 'numeric', month: 'numeric', day: 'numeric', hour12: false},
-    timePickerInput: {hour: 'numeric', minute: 'numeric', hour12: false},
-    monthYearLabel: {year: 'numeric', month: 'short', hour12: false},
-    dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric', hour12: false},
-    monthYearA11yLabel: {year: 'numeric', month: 'long', hour12: false},
-};
-
-@NgModule({
-    imports: [
-        CommonModule,
-        FlexLayoutModule,
-        CustomMaterialModule,
-        ReactiveFormsModule,
-        FormsModule,
-        CdkTableModule,
-        MatSnackBarModule,
-        MatProgressSpinnerModule,
-        MatDatepickerModule,
-        MatNativeDateModule,
-        PlotlyViaWindowModule,
-        MatDialogModule,
-        MatInputModule,
-        MatChipsModule,
-        MatTooltipModule,
-        DragDropModule,
-        MatIconModule,
-    ],
-    declarations: [
-        LabelSelectionComponent,
-        PointSelectionInfoComponent,
-        LabelingDialog,
-        ChangeChartmodeDialog,
-    ],
-    providers: [
-        ColorService,
-    ],
-    entryComponents: [
-    ],
-    exports: [
-        LabelingDialog,
-        ChangeChartmodeDialog,
-    ]
-})
-export class LabelingToolModule {
-}
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/components/label-selection/label-selection.component.css b/ui/src/app/data-explorer/components/widgets/line-chart/components/label-selection/label-selection.component.css
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/components/label-selection/label-selection.component.css
rename to ui/src/app/data-explorer/components/widgets/line-chart/components/label-selection/label-selection.component.css
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/components/label-selection/label-selection.component.html b/ui/src/app/data-explorer/components/widgets/line-chart/components/label-selection/label-selection.component.html
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/components/label-selection/label-selection.component.html
rename to ui/src/app/data-explorer/components/widgets/line-chart/components/label-selection/label-selection.component.html
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/components/label-selection/label-selection.component.ts b/ui/src/app/data-explorer/components/widgets/line-chart/components/label-selection/label-selection.component.ts
similarity index 97%
rename from ui/src/app/core-ui/linechart/labeling-tool/components/label-selection/label-selection.component.ts
rename to ui/src/app/data-explorer/components/widgets/line-chart/components/label-selection/label-selection.component.ts
index 7898f98..fe3b7b4 100644
--- a/ui/src/app/core-ui/linechart/labeling-tool/components/label-selection/label-selection.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/line-chart/components/label-selection/label-selection.component.ts
@@ -16,7 +16,7 @@
  */
 
 import { Component, EventEmitter, Input, OnInit, Output} from '@angular/core';
-import { ColorService} from '../../services/color.service';
+import { ColorService } from '../../services/color.service';
 
 @Component({
     selector: 'sp-label-selection',
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/components/point-selection-info/point-selection-info.component.css b/ui/src/app/data-explorer/components/widgets/line-chart/components/point-selection-info/point-selection-info.component.css
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/components/point-selection-info/point-selection-info.component.css
rename to ui/src/app/data-explorer/components/widgets/line-chart/components/point-selection-info/point-selection-info.component.css
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/components/point-selection-info/point-selection-info.component.html b/ui/src/app/data-explorer/components/widgets/line-chart/components/point-selection-info/point-selection-info.component.html
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/components/point-selection-info/point-selection-info.component.html
rename to ui/src/app/data-explorer/components/widgets/line-chart/components/point-selection-info/point-selection-info.component.html
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/components/point-selection-info/point-selection-info.component.ts b/ui/src/app/data-explorer/components/widgets/line-chart/components/point-selection-info/point-selection-info.component.ts
similarity index 96%
rename from ui/src/app/core-ui/linechart/labeling-tool/components/point-selection-info/point-selection-info.component.ts
rename to ui/src/app/data-explorer/components/widgets/line-chart/components/point-selection-info/point-selection-info.component.ts
index a3cedf4..7a2b5c8 100644
--- a/ui/src/app/core-ui/linechart/labeling-tool/components/point-selection-info/point-selection-info.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/line-chart/components/point-selection-info/point-selection-info.component.ts
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-import { Component, Input, OnInit} from '@angular/core';
+import { Component, Input, OnInit } from '@angular/core';
 
 @Component({
     selector: 'sp-point-selection-info',
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog.css b/ui/src/app/data-explorer/components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog.css
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog.css
rename to ui/src/app/data-explorer/components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog.css
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog.html b/ui/src/app/data-explorer/components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog.html
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog.html
rename to ui/src/app/data-explorer/components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog.html
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog.ts b/ui/src/app/data-explorer/components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog.ts
similarity index 96%
rename from ui/src/app/core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog.ts
rename to ui/src/app/data-explorer/components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog.ts
index 0601e5b..fa794ea 100644
--- a/ui/src/app/core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog.ts
+++ b/ui/src/app/data-explorer/components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog.ts
@@ -15,7 +15,7 @@
  * limitations under the License.
  */
 
-import { Component} from '@angular/core';
+import { Component } from '@angular/core';
 import { MatDialogRef } from '@angular/material/dialog';
 
 @Component({
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/dialogs/labeling/labeling.dialog.css b/ui/src/app/data-explorer/components/widgets/line-chart/dialogs/labeling/labeling.dialog.css
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/dialogs/labeling/labeling.dialog.css
rename to ui/src/app/data-explorer/components/widgets/line-chart/dialogs/labeling/labeling.dialog.css
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/dialogs/labeling/labeling.dialog.html b/ui/src/app/data-explorer/components/widgets/line-chart/dialogs/labeling/labeling.dialog.html
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/dialogs/labeling/labeling.dialog.html
rename to ui/src/app/data-explorer/components/widgets/line-chart/dialogs/labeling/labeling.dialog.html
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/dialogs/labeling/labeling.dialog.ts b/ui/src/app/data-explorer/components/widgets/line-chart/dialogs/labeling/labeling.dialog.ts
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/dialogs/labeling/labeling.dialog.ts
rename to ui/src/app/data-explorer/components/widgets/line-chart/dialogs/labeling/labeling.dialog.ts
diff --git a/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.html b/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.html
index 1e4690a..11b1e06 100644
--- a/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.html
+++ b/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.html
@@ -70,7 +70,9 @@
                      [layout]="graph.layout"
                      [config]="graph.config"
                      (relayout)="handleDefaultModeBarButtonClicks($event)"
-                     (selecting)="selectDataPoints($event)">
+                     (selecting)="selectDataPoints($event)"
+                     (plotly_click)="test($event)">
+
         </plotly-plot>
     </div>
 </div>
diff --git a/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts b/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts
index 55dedda..54c03f9 100644
--- a/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts
+++ b/ui/src/app/data-explorer/components/widgets/line-chart/line-chart-widget.component.ts
@@ -16,18 +16,18 @@
  *
  */
 
-import {AfterViewInit, Component, OnInit, Renderer2} from '@angular/core';
+import {  Component, OnInit, Renderer2 } from '@angular/core';
 import { MatDialog } from '@angular/material/dialog';
 import { PlotlyService } from 'angular-plotly.js';
 import { DataResult } from '../../../../core-model/datalake/DataResult';
 import { GroupedDataResult } from '../../../../core-model/datalake/GroupedDataResult';
 import { DatalakeRestService } from '../../../../core-services/datalake/datalake-rest.service';
-import { ChangeChartmodeDialog } from '../../../../core-ui/linechart/labeling-tool/dialogs/change-chartmode/change-chartmode.dialog';
-import { LabelingDialog } from '../../../../core-ui/linechart/labeling-tool/dialogs/labeling/labeling.dialog';
-import { ColorService } from '../../../../core-ui/linechart/labeling-tool/services/color.service';
+import { ChangeChartmodeDialog } from './dialogs/change-chartmode/change-chartmode.dialog';
+import { LabelingDialog } from './dialogs/labeling/labeling.dialog';
+import { ColorService } from './services/color.service';
 import { BaseDataExplorerWidget } from '../base/base-data-explorer-widget';
-import {EventPropertyUnion} from "../../../../core-model/gen/streampipes-model";
-import {ResizeService} from "../../../services/resize.service";
+import { EventPropertyUnion } from '../../../../core-model/gen/streampipes-model';
+import { ResizeService } from '../../../services/resize.service';
 
 @Component({
   selector: 'sp-data-explorer-line-chart-widget',
@@ -157,7 +157,7 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget implements
     }
     this.xKey = this.getTimestampProperty(this.dataExplorerWidget.dataLakeMeasure.eventSchema).runtimeName;
     this.yKeys = this.getRuntimeNames(this.selectedColumns);
-    //this.nonNumericKey = this.selectedNonNumericColumn.runtimeName;
+    // this.nonNumericKey = this.selectedNonNumericColumn.runtimeName;
     this.updateData();
     this.resizeService.resizeSubject.subscribe(info => {
       if (info.gridsterItem.id === this.gridsterItem.id) {
@@ -165,7 +165,7 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget implements
           this.graph.layout.autosize = false;
           (this.graph.layout as any).width = (info.gridsterItemComponent.width - 10);
           (this.graph.layout as any).height = (info.gridsterItemComponent.height - 80);
-        }, 100)
+        }, 100);
       }
     });
   }
@@ -258,7 +258,7 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget implements
   }
 
   loadLabels(transformedData: DataResult, labelKey: string) {
-    let labels = undefined;
+    let labels;
     if (labelKey !== undefined) {
       transformedData.rows.forEach(serie => {
         if (serie.name === labelKey) {
@@ -287,7 +287,6 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget implements
   displayGroupedData(transformedData: GroupedDataResult, yKeys: string[]) {
     // if (this.yKeys.length > 0) {
 
-    console.log('count value ' + this.showCountValue);
       const tmp = [];
 
       const groupNames = Object.keys(transformedData.dataResults);
@@ -314,10 +313,6 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget implements
         }
       }
       return tmp;
-
-    // } else {
-    //   return undefined;
-    // }
   }
 
   transformData(data: DataResult, xKey: string): DataResult {
@@ -398,8 +393,13 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget implements
     }
   }
 
+  test($event) {
+    console.log($event);
+  }
+
   selectDataPoints($event) {
     // getting selected time interval
+    console.log($event);
     const xStart = $event['range']['x'][0];
     const xEnd = $event['range']['x'][1];
 
@@ -570,8 +570,9 @@ export class LineChartWidgetComponent extends BaseDataExplorerWidget implements
       this.nonNumericKey = 'sp_internal_label';
     }
 
-    this.dataLakeRestService.saveLabelsInDatabase(this.data['measureName'], this.nonNumericKey, startdate, enddate, label).subscribe(
+    this.dataLakeRestService.saveLabelsInDatabase(this.data['measureName'], this.nonNumericKey, startdate, enddate, label, this.xKey).subscribe(
             res => {
+              // TODO add pop up similar to images
               // console.log('Successfully wrote label ' + currentLabel + ' into database.');
             }
             );
diff --git a/ui/src/app/core-ui/linechart/labeling-tool/services/color.service.ts b/ui/src/app/data-explorer/components/widgets/line-chart/services/color.service.ts
similarity index 100%
rename from ui/src/app/core-ui/linechart/labeling-tool/services/color.service.ts
rename to ui/src/app/data-explorer/components/widgets/line-chart/services/color.service.ts
diff --git a/ui/src/app/data-explorer/data-explorer.module.ts b/ui/src/app/data-explorer/data-explorer.module.ts
index 91b87f2..c81b67c 100644
--- a/ui/src/app/data-explorer/data-explorer.module.ts
+++ b/ui/src/app/data-explorer/data-explorer.module.ts
@@ -16,56 +16,60 @@
  *
  */
 
-import {CdkTableModule} from '@angular/cdk/table';
-import {CommonModule} from '@angular/common';
-import {NgModule} from '@angular/core';
-import {FlexLayoutModule} from '@angular/flex-layout';
-import {FormsModule, ReactiveFormsModule} from '@angular/forms';
-import {MatChipsModule} from '@angular/material/chips';
-import {MatNativeDateModule} from '@angular/material/core';
-import {MatDatepickerModule} from '@angular/material/datepicker';
-import {MatGridListModule} from '@angular/material/grid-list';
-import {MatProgressSpinnerModule} from '@angular/material/progress-spinner';
-import {MatSliderModule} from '@angular/material/slider';
-import {MatSnackBarModule} from '@angular/material/snack-bar';
-import {MatTabsModule} from '@angular/material/tabs';
+import { CdkTableModule } from '@angular/cdk/table';
+import { CommonModule } from '@angular/common';
+import { AfterViewInit, NgModule } from '@angular/core';
+import { FlexLayoutModule } from '@angular/flex-layout';
+import { FormsModule, ReactiveFormsModule } from '@angular/forms';
+import { MatChipsModule } from '@angular/material/chips';
+import { MatNativeDateModule } from '@angular/material/core';
+import { MatDatepickerModule } from '@angular/material/datepicker';
+import { MatGridListModule } from '@angular/material/grid-list';
+import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
+import { MatSliderModule } from '@angular/material/slider';
+import { MatSnackBarModule } from '@angular/material/snack-bar';
+import { MatTabsModule } from '@angular/material/tabs';
 import {
   OWL_DATE_TIME_FORMATS,
   OwlDateTimeModule,
   OwlNativeDateTimeModule
 } from '@danielmoncada/angular-datetime-picker';
-import {NgxChartsModule} from '@swimlane/ngx-charts';
-import {GridsterModule} from 'angular-gridster2';
-import {PlotlyViaWindowModule} from 'angular-plotly.js';
-import {ColorPickerModule} from 'ngx-color-picker';
-import {DatalakeRestService} from '../core-services/datalake/datalake-rest.service';
-import {SemanticTypeUtilsService} from '../core-services/semantic-type/semantic-type-utils.service';
-import {SharedDatalakeRestService} from '../core-services/shared/shared-dashboard.service';
-import {CoreUiModule} from '../core-ui/core-ui.module';
-import {LabelingToolModule} from '../core-ui/linechart/labeling-tool/labeling-tool.module';
-import {CustomMaterialModule} from '../CustomMaterial/custom-material.module';
-import {DataDownloadDialog} from './components/datadownloadDialog/dataDownload.dialog';
-import {DataExplorerDashboardGridComponent} from './components/grid/data-explorer-dashboard-grid.component';
-import {DataExplorerDashboardOverviewComponent} from './components/overview/data-explorer-dashboard-overview.component';
-import {DataExplorerDashboardPanelComponent} from './components/panel/data-explorer-dashboard-panel.component';
-import {TimeRangeSelectorComponent} from './components/time-selector/timeRangeSelector.component';
-import {DataExplorerDashboardWidgetComponent} from './components/widget/data-explorer-dashboard-widget.component';
-import {ImageWidgetComponent} from './components/widgets/image/image-widget.component';
-import {LineChartWidgetComponent} from './components/widgets/line-chart/line-chart-widget.component';
-import {TableWidgetComponent} from './components/widgets/table/table-widget.component';
-import {AggregateConfigurationComponent} from './components/widgets/utils/aggregate-configuration/aggregate-configuration.component';
-import {LoadDataSpinnerComponent} from './components/widgets/utils/load-data-spinner/load-data-spinner.component';
-import {NoDataInDateRangeComponent} from './components/widgets/utils/no-data/no-data-in-date-range.component';
-import {SelectPropertiesComponent} from './components/widgets/utils/select-properties/select-properties.component';
-import {DataExplorerComponent} from './data-explorer.component';
-import {DataExplorerAddVisualizationDialogComponent} from './dialogs/add-widget/data-explorer-add-visualization-dialog.component';
-import {DataExplorerEditDataViewDialogComponent} from './dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component';
-import {DataLakeService} from './services/data-lake.service';
-import {DataViewDataExplorerService} from './services/data-view-data-explorer.service';
-import {RefreshDashboardService} from './services/refresh-dashboard.service';
-import {ResizeService} from './services/resize.service';
-import {GroupConfigurationComponent} from './components/widgets/utils/group-configuration/group-configuration.component';
-import {MatSlideToggleModule} from "@angular/material/slide-toggle";
+import { NgxChartsModule } from '@swimlane/ngx-charts';
+import { GridsterModule } from 'angular-gridster2';
+import { PlotlyViaWindowModule } from 'angular-plotly.js';
+import { ColorPickerModule } from 'ngx-color-picker';
+import { DatalakeRestService } from '../core-services/datalake/datalake-rest.service';
+import { SemanticTypeUtilsService } from '../core-services/semantic-type/semantic-type-utils.service';
+import { SharedDatalakeRestService } from '../core-services/shared/shared-dashboard.service';
+import { CoreUiModule } from '../core-ui/core-ui.module';
+import { CustomMaterialModule } from '../CustomMaterial/custom-material.module';
+import { DataDownloadDialog } from './components/datadownloadDialog/dataDownload.dialog';
+import { DataExplorerDashboardGridComponent } from './components/grid/data-explorer-dashboard-grid.component';
+import { DataExplorerDashboardOverviewComponent } from './components/overview/data-explorer-dashboard-overview.component';
+import { DataExplorerDashboardPanelComponent } from './components/panel/data-explorer-dashboard-panel.component';
+import { TimeRangeSelectorComponent } from './components/time-selector/timeRangeSelector.component';
+import { DataExplorerDashboardWidgetComponent } from './components/widget/data-explorer-dashboard-widget.component';
+import { ImageWidgetComponent } from './components/widgets/image/image-widget.component';
+import { LineChartWidgetComponent } from './components/widgets/line-chart/line-chart-widget.component';
+import { TableWidgetComponent } from './components/widgets/table/table-widget.component';
+import { AggregateConfigurationComponent } from './components/widgets/utils/aggregate-configuration/aggregate-configuration.component';
+import { LoadDataSpinnerComponent } from './components/widgets/utils/load-data-spinner/load-data-spinner.component';
+import { NoDataInDateRangeComponent } from './components/widgets/utils/no-data/no-data-in-date-range.component';
+import { SelectPropertiesComponent } from './components/widgets/utils/select-properties/select-properties.component';
+import { DataExplorerComponent } from './data-explorer.component';
+import { DataExplorerAddVisualizationDialogComponent } from './dialogs/add-widget/data-explorer-add-visualization-dialog.component';
+import { DataExplorerEditDataViewDialogComponent } from './dialogs/edit-dashboard/data-explorer-edit-data-view-dialog.component';
+import { DataLakeService } from './services/data-lake.service';
+import { DataViewDataExplorerService } from './services/data-view-data-explorer.service';
+import { RefreshDashboardService } from './services/refresh-dashboard.service';
+import { ResizeService } from './services/resize.service';
+import { GroupConfigurationComponent } from './components/widgets/utils/group-configuration/group-configuration.component';
+import { MatSlideToggleModule } from '@angular/material/slide-toggle';
+import { PointSelectionInfoComponent } from './components/widgets/line-chart/components/point-selection-info/point-selection-info.component';
+import { LabelSelectionComponent } from './components/widgets/line-chart/components/label-selection/label-selection.component';
+import { ChangeChartmodeDialog } from './components/widgets/line-chart/dialogs/change-chartmode/change-chartmode.dialog';
+import { LabelingDialog } from './components/widgets/line-chart/dialogs/labeling/labeling.dialog';
+import { ColorService } from './components/widgets/line-chart/services/color.service';
 
 const dashboardWidgets = [];
 
@@ -110,8 +114,7 @@ export const MY_NATIVE_FORMATS = {
     MatNativeDateModule,
     MatSliderModule,
     MatSlideToggleModule,
-    MatChipsModule,
-    LabelingToolModule
+    MatChipsModule
   ],
   declarations: [
     DataExplorerComponent,
@@ -128,7 +131,11 @@ export const MY_NATIVE_FORMATS = {
     NoDataInDateRangeComponent,
     LoadDataSpinnerComponent,
     DataDownloadDialog,
+    ChangeChartmodeDialog,
+    LabelingDialog,
     SelectPropertiesComponent,
+    LabelSelectionComponent ,
+    PointSelectionInfoComponent,
     AggregateConfigurationComponent,
     GroupConfigurationComponent
   ],
@@ -138,6 +145,7 @@ export const MY_NATIVE_FORMATS = {
     DataViewDataExplorerService,
     DataLakeService,
     ResizeService,
+    ColorService,
     RefreshDashboardService,
     SemanticTypeUtilsService,
     {
@@ -151,6 +159,7 @@ export const MY_NATIVE_FORMATS = {
     DataExplorerComponent,
     DataExplorerAddVisualizationDialogComponent,
     DataDownloadDialog,
+    LabelingDialog,
     DataExplorerEditDataViewDialogComponent
   ]
 })