Skip to end of metadata
Go to start of metadata

Wstęp

Wtyczka umożliwia zarządzanie konfiguracjami (plikami konfiguracyjnymi) wtyczek zainstalowanych w systemie. Zamiast tworzenia dedykowanej zakładki do wgrywania/zmiany plików konfiguracyjnych dla każdej wtyczki z osobna, można zintegrować ją z PCM, która umożliwi użytkownikowi zmianę plików konfiguracyjnych dla wszystkich wtyczek w jednym miejscu.

Integracja z wtyczką

Aby zintegrować dowolną wtyczkę z PCM, należy dodać znacznik plugin-configuration w deskryptorze wtyczki - plik suncode-plugin.xml.

Przykładowy wpis w deskryptorze wtyczki:

<plugin-configuration key="plugin-configuration"
                      template-provider="com.suncode.plugin.somepluginid.TemplateProviderImpl"
                      change-listener="com.suncode.plugin.somepluginid.ChangeListenerImpl"
                      allow-file-management="false"
					  graphic-schema-provider="com.suncode.plugin.somepluginid.ConfigurationFileGraphicSchemaProviderImpl"
					  init-configuration="com.suncode.plugin.somepluginid.InitConfigurationProviderImpl"/>
<!-- key jest wymagany przez mechanizm modułów wtyczek. Nie ma związku z działaniem tej funkcjonalności -->

Atrybuty:

  • template-provider (opcjonalny) - nazwa klasy implementującej interfejs ConfigurationFileTemplateProvider. Pozwala to na załadowanie szablonu pliku konfiguracyjnego w widoku edycji konfiguracji wtyczek. Wtyczka przez interfejs podaje własny szablon.
  • change-listener (opcjonalny) - nazwa klasy implementującej interfejs ConfigurationFileChangeListener. Umożliwia obsługę reagowania na zdarzenie, gdy plik konfiguracyjny zostanie zmieniony (np. w celu cache'owania konfiguracji).
  • allow-file-management (opcjonalny) - wartośc true/false (domyślnie true). Flaga określająca, czy użytkownik może zarządzać plikami konfiguracyjnymi wtyczki (dodawanie, usuwanie, modyfikacjia identyfikatorów/typów plików).
  • graphic-schema-provider (opcjonalny) - nazwa klasy implementującej ConfigurationFileGraphicSchemaProvider. Pozwala na załadowanie konfiguracji schematu graficznego dzięki czemu będzie dostępna konfiguracja wtyczki w trybie graficznym.
  • init-configuration (opcjonalny) - nazwa klasy implementującej InitConfigurationProvider. Pozwala na załadowanie gotowych plików konfiguracyjnych podczas instalacji wtyczki.

Tryb graficzny konfiguracji wtyczek

Po dodaniu wpisu graphic-schema-provider w deskryptorze wtyczki (dla której chcemy wyświetlić graficzną konfigurację) i prawidłowym napisaniu schematu do konfiguracji wtyczki pojawi się konfiguracja w trybie graficznym. 

UWaga

Wtyczka w pomie powinna mieć zależność do plugin-configuration-manager w wersji minimum 4.0.0

Plik ze schematem powinien być w formacie js i musi posiadać skrypt przypisujący do window.vfgFileSchema konfigurację schematu graficznego

Dokumentacja do pisania schematu graficznego: https://vue-generators.gitbook.io

 

Przykładowy plik konfiguracyjny schematu graficznego do wtyczki Warermark:

PCMGraphicSchema.js

Konfiguracja schematu graficznego przystosowana jest pod ten plik konfiguracyjny wtyczki Watermark w formacie JSON:

Konfiguracja-watermark.txt

Tłumaczenia

Tłumaczenia działają na elementach o type:

  • label
  • legend
  • name
  • hint
  • help

Jako wartość należy podać klucz tłumaczenia z pliku messages_browser wtyczki.

Przykład
 schema: {
      fields: [{
        type: "field-array",
        label: "tree.view.table1",
        model: "table1",
      }]
	 }

 

Konfiguracja schematu graficznego dla tablic


Poniżej przykłady:

1) Tablica 

JSON
{
	"table1": 
	[
		"EUR",
		"USD",
		"AUD"
	]
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
        type: "field-array",
        label: "Waluty w tablicy",
        model: "table1",
      }]
	 }

2) Tablica tablic

JSON
 {
	"table2": [
		[
			"EUR"
		],
		[
			"USD"
		],
		[
			"AUD"
		]
	]
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
        type: "field-array",
        label: "Waluty w tablicy",
        model: "table2",
      }]
	 }

3) Tablica obiektów

JSON
 {
	"table3": [
		{
			"id": 1,
			"wydatek": "Rodzaj wydatku 1"
		},
		{
			"id": 2,
			"wydatek": "Rodzaj wydatku 2"
		}
	]
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
        type: "field-array",
        label: "Tablica obiektów",
        model: "table3",
        schema: {
          fields: [{
            type: "input",
            inputType: "text",
            label: "ID",
            model: "id"
          },
            {
              type: "input",
              inputType: "text",
              label: "Rodzaj wydatku",
              model: "wydatek"
            }
          ]
        }
      }]
	 }

4) Tablica tablic z obiektami

JSON
 {
	"table4": [
		[
			{
				"id": 1,
				"wydatek": "Rodzaj wydatku 1"
			}
		],
		[
			{
				"id": 2,
				"wydatek": "Rodzaj wydatku 2"
			}
		]
	]
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
        type: "field-array",
          label: "Tablica tablic z obiektami",
          model: "table4",
          maxHeight: "200",
          schema: {
            fields: [{
              type: "input",
              inputType: "text",
              label: "ID",
              model: "id"
            },
              {
                type: "input",
                inputType: "text",
                label: "Rodzaj wydatku",
                model: "wydatek"
              }
            ]
          }
      }]
	 }

5) Tablica obiektów posiadających dane i tablicę obiektów

JSON
 {
	"table5": [
		{
			"id": 1,
			"table5_1": [
				{
					"id": 1,
					"wydatek": "Rodzaj wydatku 1"
				},
				{
					"id": 2,
					"wydatek": "Rodzaj wydatku 2"
				}
			]
		},
		{
			"id": 2,
			"table5_1": [
				{
					"id": 1,
					"wydatek": "Rodzaj wydatku 1"
				},
				{
					"id": 2,
					"wydatek": "Rodzaj wydatku 2"
				}
			]
		}
	]
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
          type: "field-array",
          label: "Tablica obiektów posiadających dane i tablicę obiektów ",
          model: "table5",
          maxHeight: "200",
          schema: {
            fields: [{
              type: "input",
              inputType: "text",
              label: "ID",
              model: "id"
            },
              {
                type: "field-array",
                label: "table5_1",
                model: "table5_1",
                maxHeight: "200",
                schema: {
                  fields: [{
                    type: "input",
                    inputType: "text",
                    label: "ID",
                    model: "id"
                  },
                    {
                      type: "input",
                      inputType: "text",
                      label: "Rodzaj wydatku",
                      model: "wydatek"
                    }
                  ]
                }
              }
            ]
          }
        }]
	 }

6) Poperty posiadający tablicę obiektów posiadających dane i tablicę obiektów

JSON
 {
	"table6": {
		"table6_1": [
			{
				"id": 1,
				"table6_2": [
					{
						"id": 1,
						"wydatek": "Rodzaj wydatku 1"
					},
					{
						"id": 2,
						"wydatek": "Rodzaj wydatku 2"
					}
				]
			},
			{
				"id": 2,
				"table6_2": [
					{
						"id": 1,
						"wydatek": "Rodzaj wydatku 1"
					},
					{
						"id": 2,
						"wydatek": "Rodzaj wydatku 2"
					}
				]
			}
		]
	}
}
Konfiguracja schematu graficznego
 schema: {
      fields: [{
          type: "field-array",
          label: "Popertis posiadający tablicę obiektów posiadających dane i tablicę obiektów ",
          model: "table6.table6_1",
          schema: {
            fields: [
              {
                type: "input",
                inputType: "text",
                label: "ID",
                model: "id"
              },
              {
                type: "field-array",
                label: "table6_2",
                model: "table6_2",
                schema: {
                  fields: [{
                    type: "input",
                    inputType: "text",
                    label: "ID",
                    model: "id"
                  },
                    {
                      type: "input",
                      inputType: "text",
                      label: "Rodzaj wydatku",
                      model: "wydatek"
                    }
                  ]
                }
              }
            ]
          }
        }]
	 }

 

 

  • No labels