/******************************************************************************* * Copyright 2017 Capital One Services, LLC and Bitwise, Inc. * 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 hydrograph.ui.graph.factory; import java.util.ArrayList; import java.util.List; import org.eclipse.draw2d.IFigure; import org.eclipse.gef.EditPart; import org.eclipse.gef.internal.ui.palette.editparts.DrawerEditPart; import org.eclipse.gef.internal.ui.palette.editparts.DrawerFigure; import org.eclipse.gef.internal.ui.palette.editparts.SliderPaletteEditPart; import org.eclipse.gef.palette.PaletteDrawer; import org.eclipse.gef.palette.PaletteRoot; import org.eclipse.gef.ui.palette.PaletteEditPartFactory; import org.eclipse.swt.graphics.Color; /** * A factory for creating CustomPaletteEditPart objects. */ public class CustomPaletteEditPartFactory extends PaletteEditPartFactory { private Color palatteTextColor; private Color palatteBackgroundColor; private List<DrawerFigure> drawerFigures; private IFigure paletteTextFigure; /** * Instantiates a new custom palette edit part factory. * * @param palatteTextColor * @param palattebackgroundcolor2 */ public CustomPaletteEditPartFactory(Color palatteTextColor, Color palattebackgroundcolor) { this.palatteTextColor = palatteTextColor; this.palatteBackgroundColor=palattebackgroundcolor; drawerFigures = new ArrayList<>(); } /** * Returns list of palette drawers * @return List of {@link DrawerFigure} */ public List<DrawerFigure> getDrawerFigures() { return drawerFigures; } /** * * Returns paletteTextFigure * * @return {@link IFigure} */ public IFigure getPaletteTextFigure() { return paletteTextFigure; } @Override protected EditPart createMainPaletteEditPart(EditPart parentEditPart, Object model) { return new SliderPaletteEditPart((PaletteRoot) model) { @Override public IFigure createFigure() { paletteTextFigure = super.createFigure(); paletteTextFigure.setForegroundColor(palatteTextColor); paletteTextFigure.setBackgroundColor(palatteBackgroundColor); return paletteTextFigure; } }; } @Override protected EditPart createDrawerEditPart(EditPart parentEditPart, Object model) { return new DrawerEditPart((PaletteDrawer) model) { @Override public IFigure createFigure() { DrawerFigure drawerFigure = (DrawerFigure) super.createFigure(); drawerFigure.getContentPane().setBackgroundColor(palatteBackgroundColor); drawerFigures.add(drawerFigure); return drawerFigure; } }; } }