/* * (c) Copyright 2010-2011 AgileBirds * * This file is part of OpenFlexo. * * OpenFlexo is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * OpenFlexo is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with OpenFlexo. If not, see <http://www.gnu.org/licenses/>. * */ package org.openflexo.swing.merge; import java.awt.Color; import org.openflexo.diff.merge.MergeChange; import org.openflexo.jedit.LinesHighlight; public class MergeHighlight extends LinesHighlight { public static final Color ADDITION_SELECTED_COLOR = new Color(181, 213, 255); public static final Color ADDITION_UNSELECTED_COLOR = new Color(230, 255, 255); public static final Color ADDITION_SELECTED_BORDER_COLOR = Color.BLUE; public static final Color ADDITION_UNSELECTED_BORDER_COLOR = ADDITION_SELECTED_COLOR; public static final Color REMOVAL_SELECTED_COLOR = new Color(255, 190, 182); public static final Color REMOVAL_UNSELECTED_COLOR = new Color(255, 214, 214); public static final Color REMOVAL_SELECTED_BORDER_COLOR = Color.RED; public static final Color REMOVAL_UNSELECTED_BORDER_COLOR = REMOVAL_SELECTED_COLOR; public static final Color MODIFICATION_SELECTED_COLOR = new Color(220, 220, 220); public static final Color MODIFICATION_UNSELECTED_COLOR = new Color(240, 240, 240); public static final Color MODIFICATION_SELECTED_BORDER_COLOR = Color.GRAY; public static final Color MODIFICATION_UNSELECTED_BORDER_COLOR = MODIFICATION_SELECTED_COLOR; private Color selectedBg; private Color unselectedBg; private Color selectedFg; private Color unselectedFg; public MergeHighlight(MergeChange change, MergeTextArea MergeTA) { super(); if (change.getMergeChangeSource() == MergeChange.MergeChangeSource.Left) { selectedBg = MODIFICATION_SELECTED_COLOR; unselectedBg = MODIFICATION_UNSELECTED_COLOR; selectedFg = MODIFICATION_SELECTED_BORDER_COLOR; unselectedFg = MODIFICATION_UNSELECTED_BORDER_COLOR; } else if (change.getMergeChangeSource() == MergeChange.MergeChangeSource.Conflict) { selectedBg = REMOVAL_SELECTED_COLOR; unselectedBg = REMOVAL_UNSELECTED_COLOR; selectedFg = REMOVAL_SELECTED_BORDER_COLOR; unselectedFg = REMOVAL_UNSELECTED_BORDER_COLOR; } else if (change.getMergeChangeSource() == MergeChange.MergeChangeSource.Right) { selectedBg = ADDITION_SELECTED_COLOR; unselectedBg = ADDITION_UNSELECTED_COLOR; selectedFg = ADDITION_SELECTED_BORDER_COLOR; unselectedFg = ADDITION_UNSELECTED_BORDER_COLOR; } deselect(); } public void select() { setBgColor(selectedBg); setFgColor(selectedFg); } public void deselect() { setBgColor(unselectedBg); setFgColor(unselectedFg); } }