se.europeanspallationsource.xaos.ui.spi.impl.DefaultCommonIconProvider Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of xaos.ui Show documentation
Show all versions of xaos.ui Show documentation
JavaFX-based portion of the XAOS framework, containing the JavaFX-based
controls and tools suitable for other projects too.
The newest version!
/*
* Copyright 2018 European Spallation Source ERIC.
*
* Licensed 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 se.europeanspallationsource.xaos.ui.spi.impl;
import java.text.MessageFormat;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import javafx.scene.Node;
import org.kordamp.ikonli.Ikon;
import org.kordamp.ikonli.fontawesome.FontAwesome;
import org.kordamp.ikonli.javafx.FontIcon;
import org.kordamp.ikonli.materialdesign.MaterialDesign;
import se.europeanspallationsource.xaos.tools.annotation.ServiceProvider;
import se.europeanspallationsource.xaos.ui.control.CommonIcons;
import se.europeanspallationsource.xaos.ui.spi.IconProvider;
/**
* Provides default icons (i.e. square {@link Node}s) for a given object key.
*
* @author [email protected]
*/
@SuppressWarnings( { "ClassWithoutLogger", "UseOfSystemOutOrSystemErr" } )
@ServiceProvider( service = IconProvider.class )
public class DefaultCommonIconProvider extends BaseProvider implements IconProvider {
private static final Map ICONS_MAP;
/**
* static initializer.
*/
static {
Node icon;
Map map = new HashMap<>(100);
map.put(CommonIcons.BLUR_OFF, MaterialDesign.MDI_BLUR_OFF);
map.put(CommonIcons.CHEVRON_DOWN, FontAwesome.CHEVRON_DOWN);
map.put(CommonIcons.CHEVRON_LEFT, FontAwesome.CHEVRON_LEFT);
map.put(CommonIcons.CHEVRON_RIGHT, FontAwesome.CHEVRON_RIGHT);
map.put(CommonIcons.CHEVRON_UP, FontAwesome.CHEVRON_UP);
map.put(CommonIcons.COPY, FontAwesome.COPY);
map.put(CommonIcons.CUT, FontAwesome.CUT);
map.put(CommonIcons.DELETE, FontAwesome.REMOVE);
map.put(CommonIcons.FILE, FontAwesome.FILE_O);
map.put(CommonIcons.FILE_EXECUTABLE, FontAwesome.PLAY_CIRCLE_O);
map.put(CommonIcons.FILE_HIDDEN, FontAwesome.FILE);
map.put(CommonIcons.FILE_IMAGE, FontAwesome.FILE_IMAGE_O);
map.put(CommonIcons.FILE_LINK, FontAwesome.LINK);
map.put(CommonIcons.FOLDER_COLLAPSED, FontAwesome.FOLDER_O);
map.put(CommonIcons.FOLDER_EXPANDED, FontAwesome.FOLDER_OPEN_O);
map.put(CommonIcons.FORWARD, FontAwesome.FORWARD);
map.put(CommonIcons.GEARS, FontAwesome.GEARS);
map.put(CommonIcons.INFO, FontAwesome.INFO);
map.put(CommonIcons.PASTE, FontAwesome.PASTE);
map.put(CommonIcons.PIN, FontAwesome.MAP_PIN);
map.put(CommonIcons.REPLY, FontAwesome.REPLY);
map.put(CommonIcons.REPLY_ALL, FontAwesome.REPLY_ALL);
map.put(CommonIcons.SEARCH, FontAwesome.SEARCH);
map.put(CommonIcons.SHARE, FontAwesome.SHARE);
map.put(CommonIcons.SQUARE_DOWN, FontAwesome.CARET_SQUARE_O_DOWN);
map.put(CommonIcons.SQUARE_LEFT, FontAwesome.CARET_SQUARE_O_LEFT);
map.put(CommonIcons.SQUARE_RIGHT, FontAwesome.CARET_SQUARE_O_RIGHT);
map.put(CommonIcons.SQUARE_UP, FontAwesome.CARET_SQUARE_O_UP);
map.put(CommonIcons.STATISTICS, FontAwesome.SIGNAL);
map.put(CommonIcons.TABLE, FontAwesome.TABLE);
map.put(CommonIcons.WARNING, FontAwesome.WARNING);
map.put(CommonIcons.ZOOM_IN, FontAwesome.SEARCH_PLUS);
map.put(CommonIcons.ZOOM_OUT, FontAwesome.SEARCH_MINUS);
// Print map if xaos.test.verbose is set to true.
verbosePrintout(
map,
MessageFormat.format(
"Common icons loaded [{0}]",
DefaultCommonIconProvider.class.getSimpleName()
)
);
ICONS_MAP = Collections.unmodifiableMap(map);
}
@Override
public Node iconFor( Object key, int size ) {
if ( Objects.nonNull(key) && key instanceof CommonIcons && size > 0 ) {
Ikon icon = ICONS_MAP.get((CommonIcons) key);
if ( icon != null ) {
return FontIcon.of(icon, size);
}
}
return null;
}
}