/*
* Licensed to "Neo Technology," Network Engine for Objects in Lund AB
* (http://neotechnology.com) under one or more contributor license agreements.
* See the NOTICE file distributed with this work for additional information
* regarding copyright ownership. Neo Technology 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.
*/
package org.neo4j.neoclipse.preference;
import org.eclipse.jface.preference.DirectoryFieldEditor;
import org.eclipse.jface.preference.StringFieldEditor;
/**
* The page for neo preferences.
*
* @author Peter Hänsgen
* @author Anders Nawroth
*/
public class DecoratorPreferencePage extends AbstractPreferencePage
{
// node label properties
private static final String NODE_LABEL_PROPERTIES_LABEL = "Node label properties:";
private static final String PROPTERTY_NAMES_NOTE = "comma-separated list of property keys; will be evaluated from left to right, and the first non-empty value is used";
// relationship label properties
private static final String RELATIONSHIP_LABEL_PROPERTIES_LABEL = "Relationship label properties:";
// icon locations
private static final String NODE_ICONS_LOCATION_LABEL = "Node icons location:";
private static final String NODE_ICONS_LOCATION_ERROR = "The Node icons location is invalid.";
private static final String ICON_LOCATION_NOTE = "the icon filenames should correspond to the settings for node icon filename properties";
// node icon filename properties
private static final String NODE_ICON_FILENAME_PROPERTIES_LABEL = "Node icon filename properties:";
private static final String ICON_PROPERTY_NAMES_NOTE = "comma-separated list (see node labels); file EXTENSIONS are added automatically to the property values found";
/**
* Initializes the several input fields.
*/
@Override
protected void createFieldEditors()
{
// node label properties
StringFieldEditor propertyNameField = new StringFieldEditor(
DecoratorPreferences.NODE_PROPERTY_NAMES,
NODE_LABEL_PROPERTIES_LABEL, getFieldEditorParent() );
propertyNameField.setEmptyStringAllowed( true );
addField( propertyNameField, PROPTERTY_NAMES_NOTE );
// node label properties
StringFieldEditor relPropertyNameField = new StringFieldEditor(
DecoratorPreferences.RELATIONSHIP_PROPERTY_NAMES,
RELATIONSHIP_LABEL_PROPERTIES_LABEL, getFieldEditorParent() );
relPropertyNameField.setEmptyStringAllowed( true );
addField( relPropertyNameField, PROPTERTY_NAMES_NOTE );
// icon locations
DirectoryFieldEditor iconLocationField = new DirectoryFieldEditor(
DecoratorPreferences.NODE_ICON_LOCATION,
NODE_ICONS_LOCATION_LABEL, getFieldEditorParent() );
iconLocationField.setEmptyStringAllowed( true );
iconLocationField.setErrorMessage( NODE_ICONS_LOCATION_ERROR );
addField( iconLocationField, ICON_LOCATION_NOTE );
// node icon filename properties
StringFieldEditor iconPropertyNameField = new StringFieldEditor(
DecoratorPreferences.NODE_ICON_PROPERTY_NAMES,
NODE_ICON_FILENAME_PROPERTIES_LABEL, getFieldEditorParent() );
iconPropertyNameField.setEmptyStringAllowed( true );
addField( iconPropertyNameField, ICON_PROPERTY_NAMES_NOTE );
}
}