/** * Copyright (c) 20015 by Brainwy Software Ltda. All Rights Reserved. * Licensed under the terms of the Eclipse Public License (EPL). * Please see the license.txt included with this distribution for details. * Any modifications to this file must keep this entire header intact. */ package org.python.pydev.shared_ui.search; import org.eclipse.jface.action.Action; import org.eclipse.jface.resource.ImageDescriptor; import org.eclipse.swt.SWT; public class GroupByAction extends Action { private AbstractSearchIndexResultPage fPage; private int bit; private ImageDescriptor enabledWithBitOn; private ImageDescriptor enabledWithBitOff; public GroupByAction(AbstractSearchIndexResultPage page, int bit, ImageDescriptor imageDescriptorOn, String name) { super(name); this.enabledWithBitOn = imageDescriptorOn; this.enabledWithBitOff = ImageDescriptor.createWithFlags(imageDescriptorOn, SWT.IMAGE_DISABLE); setToolTipText(name); fPage = page; this.bit = bit; updateImage(); } public void updateImage() { if ((fPage.getGroupWithConfiguration() & bit) != 0) { setImageDescriptor(enabledWithBitOn); } else { setImageDescriptor(enabledWithBitOff); } } @Override public void run() { int initialConfig = fPage.getGroupWithConfiguration(); boolean isBitEnabled = (initialConfig & this.bit) != 0; int newConfig; if (isBitEnabled) { newConfig = initialConfig ^ this.bit; } else { newConfig = initialConfig | this.bit; } fPage.setGroupWithConfiguration(newConfig); this.updateImage(); } }