Initial EGit contribution to eclipse.org
[egit.git] / org.eclipse.egit.ui / src / org / eclipse / egit / ui / internal / preferences / WindowCachePreferencePage.java
blob0058a027268a6430c3d2f52d1b0d339ebab6b662
1 /*******************************************************************************
2 * Copyright (C) 2008, Shawn O. Pearce <spearce@spearce.org>
4 * All rights reserved. This program and the accompanying materials
5 * are made available under the terms of the Eclipse Public License v1.0
6 * which accompanies this distribution, and is available at
7 * http://www.eclipse.org/legal/epl-v10.html
8 *******************************************************************************/
9 package org.eclipse.egit.ui.internal.preferences;
11 import org.eclipse.egit.core.Activator;
12 import org.eclipse.egit.core.GitCorePreferences;
13 import org.eclipse.egit.core.project.GitProjectData;
14 import org.eclipse.egit.ui.UIText;
15 import org.eclipse.jface.preference.BooleanFieldEditor;
16 import org.eclipse.jface.preference.FieldEditorPreferencePage;
17 import org.eclipse.ui.IWorkbench;
18 import org.eclipse.ui.IWorkbenchPreferencePage;
20 /** Preferences for our window cache. */
21 public class WindowCachePreferencePage extends FieldEditorPreferencePage
22 implements IWorkbenchPreferencePage {
23 private static final int MB = 1024 * 1024;
25 private static final int GB = 1024 * MB;
27 /** */
28 public WindowCachePreferencePage() {
29 super(GRID);
30 setTitle(UIText.WindowCachePreferencePage_title);
31 setPreferenceStore(Activator.getDefault().getPreferenceStore());
34 @Override
35 protected void createFieldEditors() {
36 addField(new StorageSizeFieldEditor(
37 GitCorePreferences.core_packedGitWindowSize,
38 UIText.WindowCachePreferencePage_packedGitWindowSize,
39 getFieldEditorParent(), 512, 128 * MB) {
40 protected boolean checkValue(final int number) {
41 return super.checkValue(number)
42 && Integer.bitCount(number) == 1;
44 });
46 addField(new StorageSizeFieldEditor(
47 GitCorePreferences.core_packedGitLimit,
48 UIText.WindowCachePreferencePage_packedGitLimit,
49 getFieldEditorParent(), 512, 1 * GB));
50 addField(new StorageSizeFieldEditor(
51 GitCorePreferences.core_deltaBaseCacheLimit,
52 UIText.WindowCachePreferencePage_deltaBaseCacheLimit,
53 getFieldEditorParent(), 512, 1 * GB));
55 addField(new BooleanFieldEditor(GitCorePreferences.core_packedGitMMAP,
56 UIText.WindowCachePreferencePage_packedGitMMAP,
57 getFieldEditorParent()));
60 public boolean performOk() {
61 Activator.getDefault().savePluginPreferences();
62 GitProjectData.reconfigureWindowCache();
63 return super.performOk();
66 public void init(IWorkbench workbench) {
67 // Nothing to do